【发布时间】:2026-02-13 05:15:01
【问题描述】:
我正在创建一个 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
但是,遗憾的是,它会两次返回所有 todo 条目,第一次是在“creator”列下使用 todo 创建者的用户名。第二次使用待办事项完成者的用户名,但也在“创建者”列下。
【问题讨论】:
标签: php mysql select join left-join