0

我有三张桌子

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

我们手动在 Person 和 Address 表中添加记录。当有人在网上看到他/她的个人资料时,他/她认领了他/她的资料,并在 Person_Claimed 表中创建了一个条目。

现在我想获取那些没有声称他们的个人资料并且他们的地址也没有得到验证的人的记录。

如何加入这些表?

4

1 回答 1

2

假设verified不为空且 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 DISTINCT代替SELECT

于 2012-04-06T15:50:46.240 回答