我想编写一个查询,以提取特定人员的姓名和地址。
名称存储在它们自己的表中。
地址存储在其自己的表中。
它们之间有一个联结表,其中有一个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
如何用正确的地址拉正确的人?任何指导将不胜感激,我对此很陌生。
答案 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