0
votes

Joindre deux tables et retourner une valeur de colonne plusieurs fois à Oracle

J'ai deux tables - Table_a et TABLE_B.

AREA_ID  NAME
------   --------
111      USA
222      USA
333      USA


2 commentaires

Pourquoi utiliser table_b du tout? Il suffit d'utiliser Sélectionnez "USA" comme nom .


D'accord mais c'est la structure qui est en place


3 Réponses :


0
votes

Utiliser croix rejoindre comme xxx

ou joint interne comme xxx

Démo


0 commentaires

0
votes

Quelque chose comme ça?

Si vous changez de condition dans la ligne 15, vous obtiendrez un autre loc_name code> à partir de table_b code>. P>

SQL> with table_a (area_id, loc_id, other) as
  2    (select 111, 1, 'AA' from dual union all
  3     select 222, 2, 'BB' from dual union all
  4     select 333, 3, 'CC' from dual
  5    ),
  6  table_b (loc_id, loc_name) as
  7    (select 1, 'USA'   from dual union all
  8     select 2, 'ITALY' from dual union all
  9     select 3, 'SPAIN' from dual
 10    )
 11  select a.area_id, x.loc_name
 12  from table_a a join
 13       (select b.loc_name
 14        from table_b b
 15        where b.loc_id = 1       --> that's what you said
 16       ) x
 17       on 1 = 1;

   AREA_ID LOC_N
---------- -----
       111 USA
       222 USA
       333 USA

SQL>


0 commentaires

3
votes

Cela semble faire ce que vous voulez: xxx

Je ne peux pas comprendre pourquoi une jointure à table_b est souhaitée.

Si vous voulez vraiment la valeur avec "1", utilisez: xxx

Vous pouvez souhaiter un rejoindre . . . Mais alors vous obtiendrez un null valeur.


0 commentaires