1

我有 3 张桌子

登录- user_id,用户名

项目- 项目 ID、项目名称

任务- task_id、project_id、task_giver、task_receiver、task_content

*其中 task_giver 和 task_receiver 具有登录表中的 user_id *

我的查询:

SELECT login.username, project.project_name, tasks.task_content, tasks.task_giver
  FROM tasks
  JOIN login ON login.user_id = tasks.task_receiver 
  JOIN project ON tasks.project_id = project.project_id
 ;

但我没有task_givers得到只有 id 的名字。
我怎样才能知道他的名字?

4

2 回答 2

2

JOIN桌子再login一次像这样:

SELECT 
  receivers.username 'Task receiver',
  givers.username 'Task giver', 
  p.project_name, 
  t.task_content
FROM tasks t
INNER JOIN login   receivers ON receivers.user_id = t.task_receiver 
INNER JOIN login   givers    ON givers.user_id    = t.task_giver
INNER JOIN project p         ON t.project_id      = p.project_id

带有一些示例数据的 SQL Fiddle 演示

于 2012-11-21T11:32:02.503 回答
0

您必须JOIN登录表两次(到 task_receiver 和到 task_giver)

于 2012-11-21T11:31:28.557 回答