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

mua*_*925 4 mysql sql database join

所以我有两张我正在使用的表。

用户包括: ID, NAME,CITY

遵循其中包括: User(id),Follow(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;
Run Code Online (Sandbox Code Playgroud)

小智 5

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

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;
Run Code Online (Sandbox Code Playgroud)