table1 と table2 の 2 つのテーブルがあります。
Table1 is as below:
col1 | col2 | Col3
A 10 X
B 11 X
C 10 X
A 20 X
表 2 は次のとおりです。
col1 | col2 | col3 | col4
A 10 1 UDHAY
B 11 2 VIJAY
C 10 1 SURESH
A 20 2 ARUL
A 10 3 UDHAY
B 11 4 VIJAY
C 10 4 SURESH
A 20 5 ARUL
以下のように3つの結合条件でtable2の列col4を表示したい。
table1.COl1 = table2.COl1
and table1.COl2 = table2.COl2
and table2.COl3 = '1'
サンプルクエリ:
select
table2.col4
from table1
left outer join table2
on(
table1.COl1 = table2.COl1
and table1.COl2 = table2.COl2
and table2.COl3 = '1');
table2.col4
質問:条件 table2.col3 1,2,3,4,5 を table1 の他の条件と一致させて表示したい場合、スクリプトの作成方法を教えてください。
実際、同じテーブルを異なるエイリアス名で5回追加して印刷できることを知っています。しかし、同じ条件を5回繰り返したくありません。条件のみがwhere
5 つの値すべてに共通である必要があります。
2013 年 10 月 30 日に追加:
ご返信ありがとうございます。INを使用して言及したのとは異なります。現在、以下のスクリプト コンセプトを使用しています。
select A.col1,A.co2,B1.col4 ,B2.col4,B3.col4.B4.col4
from table1 A
left outer join table2 B1
on(
A.COl1 = B1.COl1
and A.COl2 = B1.COl2
and B1.COl3 = '1')
left outer join table2 B2
on(
A.COl1 = B2.COl1
and A.COl2 = B2.COl2
and B2.COl3 = '2')
left outer join table2 B3
on(
A.COl1 = B3.COl1
and A.COl2 = B3.COl2
and B3.COl3 = '3')
left outer join table2 B4
on(
A.COl1 = B4.COl1
and A.COl2 = B4.COl2
and B4.COl3 = '4');
したがって、私の出力は次のようになります。
A | 10 | UDHAY | |UDHAY| |
B | 11 | | VIJAY| | VIJAY |
C | 10 | SURESH | | | SURESH |
A | 20 | | ARUL | | |
しかし、上記のスクリプトのように、25 の組み合わせ (1 から 25) に対して作成する必要があります。したがって、上記のようにスクリプトを作成すると、スクリプト行は 200 行以上になります。それを避けるために、スクリプト行を減らして同じ出力を得るための他の方法を提案していただけませんか?