SQL 从关系查询?

SQL query from relationship?

我在 Postgre 中有 2 个表SQL - 用户和歌曲。我有一个关系 - UsersSongs.

如何编写 SQL 查询来显示一对 - “User.name - Song.name”。那些。我想输出所有用户的每一首歌。如果用户没有歌曲,那么该用户仍然应该突出显示。

select u.email from users u
inner join users_songs us on u.id = us.user_id

我可以只输出用户名。如何将歌曲名称添加到此查询?

如何在 Entity Framework 上做很清楚,但我不知道如何在 SQL 上做。

非常感谢。

您需要通过路口 table:

加入用户和歌曲 table
SELECT u.email, COALESCE(s.name, 'NA') AS song_name
FROM users u
LEFT JOIN users_songs us
    ON u.id = us.user_id
LEFT JOIN songs s
    ON s.id = us.song_id;

以上逻辑通过左连接来连接,保证没有歌曲的用户不会被查询掉。对于此类用户,他们的自记录将显示 NA 作为歌曲名称。