两个表上的MySql查询

时间:2015-01-13 22:05:14

标签: php mysql sql

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

     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表中目标或actor列中有'FG3'的所有用户。 结果将是

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

我已经把我所知道的一切都转移了,但我仍然没有得到正确的结果 如果有人能帮助我,我会很高兴,因为我明天早上需要介绍这项工作。谢谢

1 个答案:

答案 0 :(得分:2)

您希望加入usercode等于actortarget,然后点击' 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将查询限制为仅存在于两个表中的记录。