簡體   English   中英

從三個表中的相同列的並集中選擇

[英]Select from union of same columns from three tables

我有三張桌子, ABC. 它們都包含不同的數據,但有一些共同的列。

如果ABC都有列C1C2,那么如何使用可能位於3個表中的任何一個中的C1值來查找特定的C2值?

基本上,我想做一個簡單的查找,但讓它作用於3個表的並集 - 我寧願不使用視圖來實現這一點。

請注意,這是一個Ingres Vectorwise數據庫。

您可以通過在from子句中執行表的並集來執行此操作:

select c2
from ((select c1, c2 from a) union all
      (select c1, c2 from b) union all
      (select c1, c2 from c)
     ) t
where c1 = <your value>

我出於性能原因使用了union all 如果您擔心重復值,請使用union或在select添加distinct

這是標准SQL,應該可以在任何數據庫中使用。

我不知道你的意思是“使用C1值的特定C2值”,但是,無論你的查詢是什么,重復該查詢並結合結果,

SELECT *
FROM A
WHERE C2 = ?
UNION ALL
SELECT *
FROM B
WHERE C2 = ?
UNION ALL
SELECT *
FROM C
WHERE C2 = ?

(該視圖是標准的SQL功能,可以使您編寫的任何查詢更容易。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM