2012-04-05 53 views
1

我有兩個表如何從table1中選擇記錄,其中table1.id存在於table2的id列中?

name id 

man1 456 
man2 123 
man3 789 

筆記

content id 

testing 123 
hello 456 

SELECT DISTINCT id FROM peopleSELECT DISTINCT id FROM notes一個超集。

我想寫兩個查詢。一個選擇notes中存在notes的id列中的值等於people.id的記錄的表people中的所有記錄的一個。

name id 

man1 456 
man2 123 

另一選擇所有從表people爲其在notes一個記錄不存在,其中在notes id列上的值等於people.id

content id 

man3 789 
+0

對於同一個人是否可以有多張紙條?我假設你既在這兩個查詢中使用了「Distinct」一詞。同樣,是否有可能擁有多個具有相同ID的人? – 2012-04-05 17:22:14

+0

克里斯 - 對同一個男人可能有多張紙條。也有可能擁有多個具有相同ID的人 – user784637 2012-04-05 17:31:07

回答

2
SELECT * FROM PEOPLE WHERE ID IN (SELECT ID FROM NOTES) 
記錄

結果Man1 456 & Man2 123

SELECT * FROM PEOPLE WHERE ID NOT IN (SELECT ID FROM NOTES) 

結果Man3 789

1
--people with notes 
select distinct p.id, p.name 
from people p 
inner join notes n on p.id = n.id 

--people with no notes 
select p.id, p.name 
from people p 
left outer join notes n on p.id = n.id 
where n.id is null 
相關問題