web-dev-qa-db-ja.com

2つのSELECTステートメント間でSQL ServerでLEFT JOINを実行する方法は?

SQL Serverには次のような2つのSELECTステートメントがあります。

(SELECT [UserID] FROM [User])
(SELECT [TailUser], [Weight] FROM [Edge] WHERE [HeadUser] = 5043)

[UserID]属性と[TailUser]属性で、これら2つのSELECTステートメント間でLEFT JOINを実行します。 2番目のクエリの既存のレコードを、最初のクエリの対応するレコードと、存在しないレコードのNULL値と結合します。これどうやってするの?

21
moorara
SELECT * FROM 
(SELECT [UserID] FROM [User]) a
LEFT JOIN (SELECT [TailUser], [Weight] FROM [Edge] WHERE [HeadUser] = 5043) b
ON a.UserId = b.TailUser
60
Derek Kromm
SELECT [UserID] FROM [User] u LEFT JOIN (
SELECT [TailUser], [Weight] FROM [Edge] WHERE [HeadUser] = 5043) t on t.TailUser=u.USerID
4
Icarus
select *
from user
left join Edge
on user.userid = Edge.tailuser
and Edge.headuser = 5043
1
user596075

これを試して:

SELECT user.userID, Edge.TailUser, Edge.Weight 
FROM user
LEFT JOIN Edge ON Edge.HeadUser = User.UserID
WHERE Edge.HeadUser=5043

OR

AND Edge.HeadUser=5043

wHERE句の代わりに。

0
deepcell