小编Eva*_*lor的帖子

用一个表MySQL加入两列

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

我需要一个查询,允许我将'created_by'和'completed_by'列与'admin_users'表中的'username'列链接起来,以便我可以回显创建todo的用户的用户名以及谁完成了待办事项.看起来这样做很容易,但是找不到正确的查询.

我尝试过使用联盟:

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
Run Code Online (Sandbox Code Playgroud)

但是,它会两次返回所有todo条目,这是第一次使用todo创建者的用户名在"creator"列下.第二次使用todo的用户名完成,但也在"创建者"列下.

php mysql select join left-join

1
推荐指数
1
解决办法
3643
查看次数

标签 统计

join ×1

left-join ×1

mysql ×1

php ×1

select ×1