MySQL使用不同的密钥获得相同的参数

时间:2015-10-27 14:56:22

标签: mysql

我有两张桌子:

用户:

id     first_name     last_name
--------------------------------
1      John           Smith
2      Adam           Jones

user_planner_tasks:

id     moderator     user_id
-----------------------------
1      1             2
2      2             1

我想显示来自“user_planner_tasks”的每个任务。表。同时显示主持人的名字和姓氏以及具有相应身份证的用户。

我希望有这样的事情:

id    moderator     first_name     last_name     user_id     first_name     last_name
-------------------------------------------------------------------------------------
1     1             John           Smith         2           Adam           Jones

我知道我必须使用某种 JOIN ,但我不能,因为我的生活,想出来。任何参考都会很棒!

4 个答案:

答案 0 :(得分:1)

SELECT t.id,
       t.moderator,
       m.first_name,
       m.last_name,
       t.user_id,
       u.first_name,
       u.last_name
FROM user_planner_tasks t
LEFT JOIN users u
ON t.user_id = u.id
LEFT JOIN users m
ON t.moderator = m.id

答案 1 :(得分:1)

SELECT upt.id, 
       upt.moderator, 
       u1.first_name, 
       u1.last_name, 
       u2.id as user_id, 
       u1.first_name, 
       u1.last_name
FROM user_planner_tasks upt
LEFT JOIN users u1 ON upt.moderator = u1.id
LEFT JOIN users u2 ON upt.user_id = u2.id

在这里,您在同一张桌子上加入两次。

答案 2 :(得分:1)

这里有用户和主持人

SELECT t.*, u.*,m.*
FROM user_planner_tasks t
LEFT JOIN users u ON t.user_id = u.id
LEFT JOIN users m ON t.mderator = m.id

答案 3 :(得分:0)

这是一个常见的SQL JOIN教程:http://www.w3schools.com/sql/sql_join.asp

您要寻找的是外部联接。

SQL LEFT JOIN语法

setPaxGenerator()

你的看起来像这样:

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;