我有三张桌子
Person (id, name, email)
Address (id, Person_id, address, verified)
Person_Claimed (id, Person_id, name, email)
我们手动在Person和Address表中添加记录。当有人在线查看他/她的个人资料时,他/她声明了他/她的个人资料,并在Person_Claimed Table中创建了一个条目。
现在我想获取未声明其个人资料的人的记录,并且他们的地址未经过验证。
如何加入这些表?
答案 0 :(得分: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