mysql - 使用 fk 连接两个表中的数据

标签 mysql join

大家好,

我有 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/

相关文章:

Java-Mysql - 用户 'root' @'localhost' 的访问被拒绝(使用密码 : YES)

mysql - 在 from 子句中加入嵌套查询

hibernate 标准 API : Joining tables with custom join

mysql - 将条目及其所有关系传输到另一个 Access DB VBA

MySQL - 排除正则表达式中的文本

mysql - SQL n :m Inheritance join

php - 如何加快还包含 2500 万行 JOIN 的 SQL UPDATE

MySQL更新表以填充另一个表中的空值

mysql - 查询没有返回我认为会的所有行

python - 如何在Python中导入mysql模块?