Как выполнить LEFT JOIN в SQL Server между двумя операторами SELECT?

У меня есть два оператора SELECT в SQL Server:

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

Я хочу выполнить LEFT JOIN между этими двумя операторами SELECT в атрибуте [UserID] и [TailUser]. Я хочу присоединиться к существующим записям во втором запросе с соответствующими записями в первом запросе и значением NULL для отсутствующих записей. Как я могу это сделать?

Ответ 1

SELECT * FROM 
(SELECT [UserID] FROM [User]) a
LEFT JOIN (SELECT [TailUser], [Weight] FROM [Edge] WHERE [HeadUser] = 5043) b
ON a.UserId = b.TailUser

Ответ 2

select *
from user
left join edge
on user.userid = edge.tailuser
and edge.headuser = 5043

Ответ 3

SELECT [UserID] FROM [User] u LEFT JOIN (
SELECT [TailUser], [Weight] FROM [Edge] WHERE [HeadUser] = 5043) t on t.TailUser=u.USerID

Ответ 4

Попробуйте следующее:

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

ИЛИ

AND edge.HeadUser=5043

вместо предложения WHERE.