HI,
我有一个包含3个表TAB1,TAB2,TAB3的数据库,它们具有完全相同的列,例如:
TAB1
cola, colb, colc, cold
TABB
cola, colb, colc, cold
...
现在我想搜索所有不同的“colb”值,这是查询:
SELECT DISTINCT colb FROM TAB1
工作完美但现在我会在我的3个表“TAB1”,“TAB2”,“TAB3”中搜索所有不同的“colb”值:
SELECT DISTINCT colb FROM TAB1, TAB2, TAB3
现在SQL给我一个错误:“字段列表中的列'colb'不明确” 经过一些搜索,我明白这是因为'colb'列存在于我的3个表中。
那么如何在我的3个表中搜索同一列中的不同值?我不能使用LEFT JOIN,因为我想搜索我的所有3个表而不是其中一个表。
你知道吗?感谢答案 0 :(得分:5)
使用union的这个单一查询将为您处理不同的值。
select colb from tab1 union
select colb from tab2 union
select colb from tab3;
答案 1 :(得分:2)
select colb from tab1 union
select colb from tab2 union
select colb from tab3
答案 2 :(得分:0)
SELECT DISTINCT TAB1.colb,TAB2.colb,TAB3.colb FROM TAB1, TAB2, TAB3
答案 3 :(得分:0)
从tab1 union选择Distinct cola
从tab2 union选择Distinct cola
从tab3选择Distinct cola
答案 4 :(得分:0)
在sybase中,您可以使用@cherouvim发布的语法,您可以将子查询想象为一个表。
您也可以使用临时表
select colb into #t1 from TAB1
insert into #t1(colb) values(select colb from TAB2)
insert into #t1(colb) values(select colb from TAB3)
select distinct colb from #t1