mysql - 如何将多个查询组合到同一个表但不同的列中?

标签 mysql sql database join

所以我正在使用两个表。

用户包括: ID名称城市

以下内容包括: 用户(id)关注(id)

我正在尝试编写一个查询,该查询返回一个包含用户姓名、关注者姓名和关注者城市的表。我编写了这个查询,它返回正确的信息,但每行打印 8 次,我不知道为什么。

这是我的代码的链接 https://www.db-fiddle.com/f/aDPgZFknC1ybteWM6hwoFJ/3

FROM

(SELECT user.name
 from follow, user
 where follow.user = user.id) as NAME,

 (Select user.name
  from follow, user
  where follow.follow = user.id) as FOLLOWER,

    (select city
    from user
    right join follow
    on user.id = follow.follow) AS CITY;

最佳答案

连接表时最好使用 JOIN 语法。您可以使用下表作为基础,并通过使用 JOIN 对其进行转换以显示您需要的信息。在以下示例中,您将 follow 与用户表连接两次以获取用户和关注者信息。

SELECT U.name, U2.name, U2.city
FROM follow AS f 
JOIN user AS U
ON f.user=U.id
JOIN user AS U2
ON f.follow=U2.id;

关于mysql - 如何将多个查询组合到同一个表但不同的列中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59153514/

相关文章:

mysql - 在 mysql 中表示 n 位无符号整数

sql - group by 和 order by 的问题

sql - 用户特定的数据库记录

mysql - 无法在 Yii 中获取关注者新闻源的事件?

java - 在 Flink : No suitable driver found when connecting to mysql >= 8. 0.16 中使用 mysql-connector-java

php - Laravel 和 Blade 错误

Mysql连接用户和事件表

php - MySQL 查找两个表之间的库存水平差异并返回结果

php - 使用php在sql数据库中插入多行

database - LDAP 和数据库同步