联结表的SQL查询

时间:2018-11-21 20:57:13

标签: mysql

我想编写一个查询,以提取特定人员的姓名和地址。

名称存储在它们自己的表中。

地址存储在其自己的表中。

它们之间有一个联结表,其中有一个addressID和一个personID。

SELECT name, address
FROM person
JOIN junctionTable ON person.personID = junctionTable.personID
JOIN personAddress ON junctionTable.personID = personAddress.addressID
WHERE junctionTable.personID = 2

这样可以得到正确的人但地址错误的结果。

这是因为在联结表中有:

addressID = 3 personID = 2

如何用正确的地址拉正确的人?任何指导将不胜感激,我对此很陌生。

2 个答案:

答案 0 :(得分:1)

在第二个JOIN中,您需要在两个表上都使用addressID

SELECT name, address
FROM person
JOIN junctionTable ON person.personID = junctionTable.personID
JOIN personAddress ON junctionTable.addressID = personAddress.addressID
WHERE junctionTable.personID = 2

答案 1 :(得分:0)

尝试更改人员地址表联接键:

SELECT name, address
FROM person
JOIN junctionTable ON person.personID = junctionTable.personID
JOIN personAddress ON person.personID = personAddress.personID
WHERE junctionTable.personID = 2