用于保存数组的结构表 - mysql

时间:2015-06-18 17:21:57

标签: mysql

我有一个看起来像的电话号码表:

contactType| country | areaCode| exchangeCode| localNumber| id| createdDate| lastModifiedDate| createdBy| lastModifiedBy|

一个类似于:

的地址表
contactType| street1 | street2| city| state| zip| country| id| createdDate| lastModifiedDate| createdBy| lastModifiedBy|

和人员表看起来像:

| id | firstName | lastName | email | birthdate  | phoneNumbers | addresses | gender | createdDate | lastModifiedDate | createdBy     | lastModifiedBy 

注意:phoneNumbers和address是外键,分别指向phoneNumber和Address的ID。

我的问题:我怎样才能找到那里有地址和电话号码的人?我知道它需要以某种方式加入,但我不知道如何。

我看过this,但我很担心JOIN如何/为何在那里工作。

感谢任何帮助

1 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题,并且您只想简单地列出每个表格中与“#34; person”相关的所有字段。 (我将在每个表的末尾省略三个元数据字段),您将需要类似的内容:

select p.id, p.firstName, p.lastName, p.email, p.birthdate,
    pn.contactType, pn.country, pn.areaCode, pn.exchangeCode, pn.localNumber,
    a.contactType, a.street1, a.street2, a.city, a.state, a.zip, a.country
from person p
inner join PhoneNumber pn
on p.id = pn.id
inner join address a
on p.id = a.id

如果" country"和" contactType"在两个表中都是相同的,您可以省略其中一个,或者如果单个ID可以存在多个contactTypes / countries,则可以加入这些字段。