我有以下表格:
Table person:
id | name |
---------------+
1 | adam |
2 | chris |
3 | nancy |
4 | nathalie |
5 | holy |
Table relation:
id | person | parent |
---+--------+--------+
1 | 2 | 1 |
2 | 2 | 3 |
3 | 1 | 4 |
4 | 5 | 2 |
我想要一个产生类似内容的查询:
person | parent |
-------+----------+
chris | adam |
chris | nancy |
adam | nathalie |
holy | chris |
我不确定如何达到预期效果。
答案 0 :(得分:2)
relation
表已经显示了人们的父母是谁。您只需将其加入person
表(两次)即可将这些ID转换为名称:
SELECT p1.name, p2.name
FROM relation r
JOIN person p1 ON p1.id = r.person
JOIN person p2 ON p2.id = r.parent
答案 1 :(得分:1)
你只需要两个连接:
select pp.name as person, pa.name as parent
from relation r left join
person pp
on r.person = pp.id left join
parent pa
on r.parent = pa.id;
如果某些值未知(例如,如果您不认识某人的父母),则使用left join
。