MYSQL: Left join same table 两次相同字段
MYSQL: Left join same table twice with same field
我有一个存储管理员和普通客户的用户 table:
ID Name Role
1 John Admin
2 Sara User
3 Pete User
4 Nick User
存储请求的另一个 Table:
ID Updatedby Createdby DateCreated DateUpdated
1 1 2 10/12/2017 21/01/2018
2 1 1 11/12/2017 22/01/2018
3 1 3 12/12/2017 23/01/2018
4 2 2 13/12/2017 24/01/2018
我正在尝试创建一个如下所示的视图:
ID Updatedby Createdby DateCreated DateUpdated
1 John Sara 10/12/2017 21/01/2018
2 John John 11/12/2017 22/01/2018
3 John Pete 12/12/2017 23/01/2018
4 Sara Sara 13/12/2017 24/01/2018
我在创建查询时面临的问题是,我试图向用户 table 左联接两次。如何指定 Users.Name 是针对 Updatedby 还是 Createdby?这就是我的意思:
SELECT
request.ID,
users.Name, /*name for Createdby */
users.Name, /*name for Updatedby */
requests.DateCreated,
requests.DateUpdated
FROM
requests
LEFT JOIN
users ON requests.Updatedby = users.ID
我无法理解这个逻辑。
这是一个例子:
SELECT toD.dom_url AS ToURL,
fromD.dom_url AS FromUrl,
rvw.*
FROM reviews AS rvw
LEFT JOIN domain AS toD
ON toD.Dom_ID = rvw.rev_dom_for
LEFT JOIN domain AS fromD
ON fromD.Dom_ID = rvw.rev_dom_from
你可以使用Alias
我有一个存储管理员和普通客户的用户 table:
ID Name Role
1 John Admin
2 Sara User
3 Pete User
4 Nick User
存储请求的另一个 Table:
ID Updatedby Createdby DateCreated DateUpdated
1 1 2 10/12/2017 21/01/2018
2 1 1 11/12/2017 22/01/2018
3 1 3 12/12/2017 23/01/2018
4 2 2 13/12/2017 24/01/2018
我正在尝试创建一个如下所示的视图:
ID Updatedby Createdby DateCreated DateUpdated
1 John Sara 10/12/2017 21/01/2018
2 John John 11/12/2017 22/01/2018
3 John Pete 12/12/2017 23/01/2018
4 Sara Sara 13/12/2017 24/01/2018
我在创建查询时面临的问题是,我试图向用户 table 左联接两次。如何指定 Users.Name 是针对 Updatedby 还是 Createdby?这就是我的意思:
SELECT
request.ID,
users.Name, /*name for Createdby */
users.Name, /*name for Updatedby */
requests.DateCreated,
requests.DateUpdated
FROM
requests
LEFT JOIN
users ON requests.Updatedby = users.ID
我无法理解这个逻辑。
这是一个例子:
SELECT toD.dom_url AS ToURL,
fromD.dom_url AS FromUrl,
rvw.*
FROM reviews AS rvw
LEFT JOIN domain AS toD
ON toD.Dom_ID = rvw.rev_dom_for
LEFT JOIN domain AS fromD
ON fromD.Dom_ID = rvw.rev_dom_from
你可以使用Alias