web-dev-qa-db-fra.com

Comment effectuer une jointure à gauche dans SQL Server entre deux instructions SELECT?

J'ai deux instructions SELECT dans SQL Server comme celles-ci:

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

Je souhaite effectuer une jointure à gauche entre ces deux instructions SELECT sur les attributs [UserID] et [TailUser]. Je veux joindre des enregistrements existants dans la deuxième requête avec les enregistrements correspondants dans la première requête et la valeur NULL pour les enregistrements absents. Comment puis-je faire ceci?

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

Essaye ça:

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

au lieu de WHERE clausule.

0
deepcell