大家好,
我有 2 个这样的表:
users
id name
============
1 Piter
2 Vladimir
3 Paul
data
id creator reviewer text
===================================
1 1 2 bla1
2 1 3 bla2
3 2 3 bla3
在数据表创建者和审阅者中 fk 引用了 users.indexid。
有没有一种方法无需多选(即通过使用连接——这是我现在正在尝试使用的方法)来获取名称已解析的数据。
确实不起作用的例子
SELECT *
FROM data as d
LEFT JOIN users as u
ON d.creator = u.indexid
LEFT JOIN users as u2
ON d.reviewer = u2.indexid
WHERE data.id = 1
这需要一些结果,例如:
results
id creator reviewer text
=============================
1 Piter Vladimir bla1
相反,我得到:
`bad_results`
id creator reviewer text
=============================
1 1 2 bla1
谁能指出我失败的地方?
谢谢!
最佳答案
您可以在下面尝试 - 您的第二个加入条件需要更改为 d.reviewer = u2.indexid
SELECT d.id,u.name as creator,u2.name as reviewer, text
FROM data as d
LEFT JOIN users as u
ON d.creator = u.indexid
LEFT JOIN users as u2
ON d.reviewer = u2.indexid
WHERE data.id = 1
关于mysql - 使用 fk 连接两个表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58745545/