繁体   English   中英

在多个表中选择一个不同的值(sql)

[英]Select a distinct value in multiple tables (sql)

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个表而不是其中一个表。

你有想法吗 ? 谢谢

这个带union的单个查询将为您处理不同的值。

select colb from tab1 union
  select colb from tab2 union
  select colb from tab3;
select colb from tab1 union 
select colb from tab2 union 
select colb from tab3
SELECT DISTINCT TAB1.colb,TAB2.colb,TAB3.colb FROM TAB1, TAB2, TAB3

从tab1 union中选择Distinct cola

从tab2 union选择Distinct cola

从tab3中选择Distinct cola

在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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM