簡體   English   中英

如何列出所有用戶,以及在外部聯接中使用子查詢

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM