2012-04-06 13 views
0

私たちは手動で人のレコードとアドレステーブルを追加する3つのテーブルこの特定のケースのレコードを取得するにはどうすればよいですか?

Person (id, name, email) 
Address (id, Person_id, address, verified) 
Person_Claimed (id, Person_id, name, email) 

を持っています。誰かがプロフィールをオンラインで見ると、彼/彼女はプロフィールを主張し、Person_Claimed Tableにエントリが作成されます。

今、プロフィールを主張せず、住所が確認されていない人物の記録を取得したいと思います。

人が複数確認されていないアドレスを持つことができる場合は、これらのテーブルに

おかげverifiedがnullでないと仮定すると、

答えて

2

と「検証されていない」0手段

SELECT p.* 
FROM Person p 
INNER JOIN Address a ON (a.Person_id = p.id) 
LEFT JOIN Person_Claimed pc ON (pc.Person_id = p.id) 
WHERE a.verified =0 AND pc.id IS NULL 

に参加するためにどのように、あなたがしたいことGROUP BY p.id(またはSELECTの代わりにSELECT DISTINCTを追加してください。

+0

「pc.id IS NULL」というクエリは、その人d oesは 'Person_Claimed'テーブルに存在しませんか? – Awan

関連する問題