我目前正在尝试使用另一个表(用户)加入表(任务)。我需要根据tasks表中的值选择users表中的不同行:
tasks(user1, user2, user3);
users(id, name, email);
以前我使用LEFT JOIN链接数据,如下所示:
SELECT * FROM tasks LEFT JOIN users ON tasks.user1 = users.id;
这很简单,所以我尝试使用AND这样:
SELECT * FROM tasks LEFT JOIN users ON tasks.user1 = users.id AND tasks.user2 = users.id;
但是将users字段返回为NULL,这是有道理的,因为tasks.user1与tasks.user2不同
我现在非常难以理解如何做到这一点,欢迎所有建议!
答案 0 :(得分:2)
您需要为每个已加入的列重复加入并为users
表格别名:
SELECT * FROM tasks
LEFT JOIN users u1 ON tasks.user1 = u1.id
LEFT JOIN users u2 ON tasks.user2 = u2.id
...
答案 1 :(得分:1)
使用这个:
SELECT *
FROM tasks
LEFT JOIN users
ON tasks.user1 = users.id
OR tasks.user2 = users.id;