簡體   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