2012-04-05 16 views
1

私は2つのテーブルtable1からtable2のid列にtable1.idが存在するレコードを選択する方法は?

name id 

man1 456 
man2 123 
man3 789 

ノート

content id 

testing 123 
hello 456 

SELECT DISTINCT id FROM peopleを持っているがSELECT DISTINCT id FROM notesのスーパーセットです。

2つのクエリを書きたいと思います。 notesの値がpeople.idに等しいnotesのレコードが存在するテーブルpeopleのレコードをすべて選択するレコード。

name id 

man1 456 
man2 123 

他の選択notesのid列の値がpeople.id

content id 

man3 789 
+0

同じ男性に複数のメモを付けることはできますか?両方のクエリで "Distinct"という単語を使用するので、私はそう仮定します。同様に、同じIDを持つ複数の人間を持つことは可能ですか? –

+0

Chris - 同じ男のために複数の音符を持つことは可能です。同じidを持つ複数の男性を持つことも可能です – user784637

答えて

2
SELECT * FROM PEOPLE WHERE ID IN (SELECT ID FROM NOTES) 
に等しい notesのレコードが存在しないため、テーブル peopleからすべてのレコード

結果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 
関連する問題