结构表以保存数组

结构表以保存数组

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

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在其中的工作方式/原因感到困惑。

任何帮助表示赞赏

最佳答案

如果我正确理解了这个问题,并且您只想列出每个表中与“人”相关的所有字段(我将在每个表的末尾保留三个元数据字段),那么您将需要:

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,则可以在这些字段上联接。

关于mysql - 结构表以保存数组-MySQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30921827/

10-09 08:25