我有一个看起来像的电话号码表:
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如何/为何在那里工作。
感谢任何帮助
答案 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,则可以加入这些字段。