从关系中进行postgreSQL查询



我在PostgreSQL中有两个表-用户和歌曲。我有关系-用户歌曲

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

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

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

如何在实体框架上实现这一点很清楚,但我不知道如何在SQL上实现。

非常感谢。

您需要通过连接表加入用户表和歌曲表:

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;

上述逻辑通过使用左联接进行联接,以确保没有歌曲的用户不会从查询中删除。对于这样的用户,他们的since记录将显示歌曲名称的NA

最新更新