我有一个MySQL的联系人数据库,有三个表。
人
个人接触
人尾巴
每个联系人共享一个名为“ID”的主键
personContact表包含一个名为“personZip”的值,该值恰好是他们的邮寄地址邮政编码。
我想编写一个SQL查询,它将为我提供特定邮政编码数组中每个人的所有联系人数据。
我编写了一个简单的语句来对其中的两个表执行内部联接:
SELECT * FROM `personContact`
INNER JOIN person
ON personContact.ID=person.ID
我写了一个声明,只选择我需要的邮政编码:
SELECT * FROM 'personContact'
WHERE personContact.personZip=12564
OR personContact.personZip=12563
OR personContact.personZip=12522
OR personContact.personZip=12590
OR personContact.personZip=12594
OR personContact.personZip=12533
OR personContact.personZip=12570
OR personContact.personZip=12589
OR personContact.personZip=10509
我不知道如何执行两个连接,合并所有三个表中的所有列。
我不知道如何编写查询来同时容纳邮政编码和连接的选择。
MySQL错误不能帮助我朝着正确的方向前进。
最佳答案
合并所有三个表并返回所有列,同时按邮政编码筛选:
SELECT person.*, personContact.*, personDetails.*
FROM person
INNER JOIN personContact ON personContact.ID = person.ID
INNER JOIN personDetails ON personDetails.ID = person.ID
WHERE personContact.personZip = 12564
OR personContact.personZip = 12563
OR personContact.personZip = 12522
OR personContact.personZip = 12590
OR personContact.personZip = 12594
OR personContact.personZip = 12533
OR personContact.personZip = 12570
OR personContact.personZip = 12589
OR personContact.personZip = 10509
编辑:多个
OR
语句可以按照其他人的建议使用IN
替换WHERE personContact.personZip IN (12564, 12563, 12522, 12590 ...)