查询相同值和表

时间:2017-06-09 10:43:04

标签: sql sql-server join left-join

我在执行以下查询时遇到问题。我的想法是我有两个表店和用户。在商店中我有列store_owners和store_last_modified,两个值都是与dbo.Users的id相关的整数。如何显示存储在与两列相关的用户中的名称。像那样:

select stores.name , users.name as name_store_owner , users.name as name_store_last_modified

from stores

LEFT JOIN users ON stores.store_owners=users.id (related to name_store_owner)
LEFT JOIN users ON stores.store_last_modified=users.id  (related to name_store_last_modified)

我该怎么做?

提前谢谢你。

2 个答案:

答案 0 :(得分:2)

您需要为表提供别名,因此您可以在from子句中两次引用同一个表。此外,您需要参考右表(users而非stores):

select s.name, uo.name as name_store_owner, um.name as name_store_last_modified
from stores s left join
     users uo 
     on s.store_owners = uo.id left join
     users um
     on s.store_last_modified = um.id 

答案 1 :(得分:0)

似乎可以在不参考表格的情况下检查条件。

select * from
stores s
left join
users u on u.id = s.store_owners
and u.id = s.store_last_modified

从您的问题看来,用户ID(id)应该与stores表中的单行匹配。