[英]Select from union of same columns from three tables
我有三張桌子, A , B和C. 它們都包含不同的數據,但有一些共同的列。
如果A , B和C都有列C1和C2,那么如何使用可能位於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.