我正在创建一个 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/