我尝试使用双LETF OUTER JOIN创建一个请求,并且sequelize没有成功 我有2个表:用户
并且:朋友
我的用户ID和idfriend与我的表用户相关
如果我有我的桌面用户 Id = X,userId = 23,idFriend = 34,...
我有一个查询谁为我提供了例如23(userID或Idfriend)的所有行 如何在同一请求中获取userId(用户名,电子邮件...)和所有数据idFriend(用户名,电子邮件...)的所有数据
THX
答案 0 :(得分:0)
你应该两次加入用户,例如:
select a.userId, a.Idfriend, b.username as username, c.username as friendname
from friends a
left join user b on b.id = a.userId
left join user c on c.id = a.idfriend
答案 1 :(得分:0)
如果我理解你的话,你试图通过一个查询获取userId和friendId的数据?我认为这一定对您有用,但您需要对其进行测试
第一种方式:
SELECT user.*, friend.* FROM users
LEFT JOIN users as user ON user.id=23
LEFT JOIN users as friend ON friend.id=34
LIMIT 1
使用UNION的第二种方式:
(SELECT user.*, friend.* FROM users as user
LEFT JOIN users as friend ON friend.id=23
WHERE user.id=34 OR user.id IS NULL)
UNION
(SELECT user.*, friend.* FROM users as user
RIGHT JOIN users as friend ON friend.id=34
WHERE user.id=23 OR user.id IS NULL)
另一种方式(如果WHERE子句为null,这种方式有返回空的风险):
SELECT user.*, friend.* FROM users as user
JOIN users as friend ON friend.id=34
WHERE user.id=23
我希望这会对你有所帮助