[英]How to list all users, and use a sub-query in an outer join
我想返回所有用户,如果他们参加了会议,我想返回会议信息。 @ConferenceID将是一个参数。
SELECT
U.UserId,
O.ConferenceName,
O.LocationName
FROM Users
我的外部联接将需要如下所示:
SELECT *
FROM Conferences C
INNER JOIN Locations L ON C.LocationId = L.LocationId
WHERE UserId = ??
AND C.ConferenceID = @ConferenceID
是否可以执行外部加入,以便返回所有用户,然后(如果有的话)显示会议信息(可选)?
我尝试了这个:
SELECT
U.*,
oj.
FROM Users U
OUTER JOIN (
SELECT c.ConferenceName, L.LocationName
FROM Conferences C
INNER JOIN Locations L ON C.LocationId = L.LocationId
WHERE C.ConferenceID = @ConferenceID
) AS oj.UserID = U.UserID
但我得到一个错误
不能绑定多部分标识符“ U.UserId”。
DDL:
User
-UserId
Conference
-ConferenceID
-UserID
-LocationId
Locations
-LocationID
是的,您可以使用外部LEFT JOIN
,尤其是LEFT JOIN
,但是您需要将ConferenceID
条件移至join子句,并且需要LEFT JOIN
两个表。
SELECT U.UserId
, C.ConferenceName
, L.LocationName
FROM Users U
LEFT JOIN Conferences C ON C.ConferenceID = @ConferenceID
AND C.UserID = U.UserId
LEFT JOIN Locations L ON L.LocationID = C.LocationId
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.