有两个表table1和table2。
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
我想在 table2 中显示 col4 列,其中包含 3 个连接条件,如下所示。
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 行。为避免这种情况,请您帮助建议一些其他方法来减少脚本行并获得相同的输出?