根据另一个表中的字段进行选择

时间:2011-07-27 21:59:20

标签: mysql

表1 用户,城市

表2 用户,朋友

我想select * from Table1为一个特定用户及其所有朋友(他们也是Table1中的用户)。

尝试了这一点,它找到了所有数据但为WHERE Table1.user = '$user'提供了多行,即使每个用户名都是唯一的。

SELECT *
FROM Table1, Table2
WHERE Table1.user = '$user'
OR
(Table2.user = '$user' and Table2.friends = Table1.user)

非常感谢

1 个答案:

答案 0 :(得分:2)

您基本上有两个不同的查询(选择用户1的信息,选择用户1的朋友信息)。您可以将它们与UNION结合使用。

SELECT
  table1.user,
  table1.city
FROM
  table1
INNER JOIN
  table2
ON
  table1.user = table2.friends
WHERE
  table2.friends = '$user'

UNION

SELECT
  user,
  city
FROM
  table1
WHERE
  user = '$user'