我有两个表“用户”和“朋友”,我很难加入他们

     users table
    id | name | usercode
    --------------------
    1 | david | 2WM
    2 | Samme | E5N
    3 | Awudu | C0Q
    4 | John  | VX6
    5 | Jerem | FG3

   Friends Table
 id | actor | target
 --------------------
 1  | E5N   | FG3
 2  | 2WM   | VX6
 3  | FG3   | 2WM
 4  | C0Q   | VX6
 5  | FG3   | VX6


基本上,我想从USERS表中选择在FRIENDS表的target或actor列中具有“ FG3”的所有用户。
结果将是

id | name  | usercode | actor | target
--------------------------------------
 2 | Samme | E5N      | E5N   | FG3
 1 | david | 2WM      | FG3   | 2WM
 5 | John  | VX6      | FG3   | VX6


我知道我所知道的一切,但仍然没有得到正确的结果
如果有人可以帮助我,我将感到很高兴,因为我明天早上需要介绍这项工作。谢谢

最佳答案

看起来您想加入等于usercodeactortarget,然后将'FG3'部分放在WHERE子句中:

SELECT users.id, users.name, users.usercode, friends.actor, friends.target
FROM users
INNER JOIN friends
    ON users.usercode = friends.actor OR users.usercode = friends.target
WHERE users.usercode != 'FG3'
AND (friends.actor = 'FG3' OR friends.target = 'FG3');


使用INNER JOIN将查询限制为仅存在于两个表中的记录。

08-28 08:45