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

标签 mysql

表1 用户,城市

表2 用户、 friend

我想为一个特定用户及其所有 friend (也是表 1 中的用户)从 Table1 选择 *

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

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

非常感谢

最佳答案

您实际上有两个不同的查询(选择用户 1 的信息,选择用户 1 的 friend 的信息)。您可以将它们与 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'

关于mysql - 根据另一个表中的字段进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6851764/

相关文章:

php - 将 mysql_query 转换为 PDO

mysql - 如何从wp_postmeta获取meta_key?

php - MySql - 获取最小、最大和 3 个随机行

php - 如何使用codeigniter在mysql中插入带有特殊字符的文本

mysql - 如何从表中获得前三名

MySQL UTF8 数据显示不正确

mysql - 根据年份和月份获取数据

mysql - 分页时的 SQL 错误

php - 从满足条件的任何一个连接表中获取数据

mysql - double 的默认值是多少?