[英]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.