2017-01-11 51 views
0

我有一個包含多個患者數據表的SQL數據庫。每張桌子都有一個共同的欄目,代表每個病人的ID號碼。這些表格之間存在顯着的重疊,即相同的患者ID號碼經常出現在多個表格上。我想要做的是選擇所有不同的患者ID號碼,這些號碼不會出現在特定的表格中。從MySQL中排除列使用UNION跨表選擇不同查詢

+0

見http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-似乎對我來說是一個非常簡單的sql查詢 – Strawberry

+0

歡迎來到StackOverflow。這裏是[問]的指南。關於這點的一點是,對於需要代碼的問題,最好包含[mcve]。 – BenH

回答

1

您可以使用UNIONNOT IN這樣的:

select id 
from (
    select id from table1 
    union 
    select id from table2 
    union 
    select id from table3 
    ... 
) t where id not in (
    select id from sometable 
); 
+0

謝謝!效果很好。 「t」是什麼意思,當你說「t其中id不在...」時 – hayfreed

+0

t是子查詢的別名。在子查詢之外,您可以將它稱爲真實表格。 – GurV