我有两个表用户和链接。我正在创建一个用户与另一个用户之间的链接。意味着用户A将链接到用户B,反之亦然。
现在我想获取特定输入的user_id的链接用户的详细信息。意味着如果用户A正在查找其链接的ID,则应该看到链接ID的详细信息。
Linkage有三列,分别是id,user_id和linked_contact_id。 用户具有user_id,user_name,pass等列。
我尝试了一次加入,但我只是从这里得到了链接ID,而不是id的详细信息。
SELECT * FROM Users INNER JOIN linkage ON linkage.user_id = Users.user_id WHERE linkage.linked_contact_id = 1
输出
user_id linked_contact_id
1 4
1 1
1 5
我怎么能得到这个?请帮助......谢谢......
答案 0 :(得分:0)
您需要再次加入users表:
SELECT u.*, u2.* FROM Users u
INNER JOIN linkage l ON l.user_id = u.user_id
INNER JOIN Users u2 ON l.linked_contact_id = u2.user_id
WHERE l.linked_contact_id = 1
请注意,当您选择相同的列两次(在u.*, u2.*
中)时,您可能必须列出每个字段并使用别名来区分它们。
答案 1 :(得分:0)
获取用户信息
SELECT users.*,
linkage.*,
contact.user_id as contact_user_id,
contact.user_name AS contact_user_name
FROM users
INNER JOIN linkage ON linkage.user_id = users.user_id
INNER JOIN users AS contact ON linkage.linked_contact_id = contact.user_id
WHERE linkage.linked_contact_id = 1
修改强>
此处查询输出的屏幕截图
答案 2 :(得分:0)
你的比例有问题。但没关系。
尝试LEFT JOIN或RIGHT JOIN
SELECT * users
LEFT JOIN linkage
ON linkage.user_id = users.user_id
WHERE linkage.linked_contact_id = 1