我有两个表“用户”和“朋友”,我很难加入他们
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
我知道我所知道的一切,但仍然没有得到正确的结果
如果有人可以帮助我,我将感到很高兴,因为我明天早上需要介绍这项工作。谢谢
最佳答案
看起来您想加入等于usercode
或actor
的target
,然后将'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
将查询限制为仅存在于两个表中的记录。