php - 将两列与一张表连接 MySQL

标签 php mysql select join left-join

我正在创建一个 php 待办事项列表,并在 MySQL 数据库中有一个“admin_todo”表,每个待办事项都有一个“created_by”和“completed_by”列,其中包含单独表“admin_users”中的用户 ID .

我需要一个查询,允许我将“created_by”和“completed_by”列与“admin_users”表中的“username”列链接起来,这样我就可以回显创建待办事项的用户的用户名谁完成了待办事项。这似乎很容易做到,但我找不到正确执行此操作的查询。

我试过使用联合:

SELECT admin_todo.*, admin_users.username AS creator 
FROM admin_todo 
LEFT JOIN admin_users ON admin_todo.created_by = admin_users.id 

UNION ALL

SELECT admin_todo.*, admin_users.username AS completer 
FROM admin_todo 
LEFT JOIN admin_users ON admin_todo.completed_by = admin_users.id

但是,遗憾的是,它会两次返回所有待办事项条目,第一次是在“创建者”列下使用待办事项创建者的用户名。第二次使用待办事项完成者的用户名,但也在“创建者”列下。

最佳答案

试试这个:

SELECT admin_todo.*, au.username AS creator, au2.username AS completer
FROM admin_todo 
LEFT JOIN admin_users AS au
    ON admin_todo.created_by = au.id
LEFT JOIN admin_users AS au2
    ON admin_todo.completed_by = au2.id

关于php - 将两列与一张表连接 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4878422/

相关文章:

php - 在 if/else 内更新的 where 子句中使用 select 语句的值

javascript - 如何使用 JavaScript 选择多个类之一?

php - 处理数据库错误的最佳方法

mysql - phpMyAdmin 上的 SQL INSERT INTO 错误 #1064

php - MySQL:了解映射表

php - 在 php 中获取具有相同用户 ID 的所有行值?

xml - 使用一张表选择 XML 循环节点 (sqL)

mysql - 将数据填充到具有 m :m Relationships 的表中

php - 如何从 MySQL 填充的下拉列表中发布数据

php - 获取 "Integrity constraint violation: 1048 Column ' payment_id' cannot be null"using Doctrine & Symfony