根据值数组选择行并连接数据

时间:2015-10-07 21:31:10

标签: mysql sql join

我有一个包含三个表的联系人的MySQL数据库。

  1. personContact
  2. personDetails
  3. 每个联系人都会共享一个名为' 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
    

    我不确定如何执行两个连接,以合并所有三个表中的所有列。

    我不确定如何编写查询以同时选择邮政编码和JOINS。

    MySQL错误并没有帮助我朝着正确的方向前进。

2 个答案:

答案 0 :(得分:2)

你快到了。使用等同于in的{​​{1}}。

or

答案 1 :(得分:1)

加入所有三个表并返回所有列,同时按邮政编码过滤:

adb connect IP_ADDRESS:PORT

编辑:可以使用其他人建议的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