我的数据库中有两个表
流派包含:id, genre_id
音乐包含:id, song_id, genre_id
我想显示结果:
SELECT * FROM Genre WHERE total number of rows in Music
WHERE Genre.genre_id = Music.genre_id > 4
我一直在摸索好几个小时试图使用它,JOIN
但我无法理解如何在逻辑上解决它,然后将它放入 mysql 代码中。
我的数据库中有两个表
流派包含:id, genre_id
音乐包含:id, song_id, genre_id
我想显示结果:
SELECT * FROM Genre WHERE total number of rows in Music
WHERE Genre.genre_id = Music.genre_id > 4
我一直在摸索好几个小时试图使用它,JOIN
但我无法理解如何在逻辑上解决它,然后将它放入 mysql 代码中。
您想要的输出只是有效查询中的几个小的语法更改:
SELECT *
FROM Genre g
WHERE (SELECT COUNT(*) FROM Music m WHERE g.genre_id = m.genre_id) > 4
虽然这可能是最容易理解的方式,但 , 和 的组合LEFT OUTER JOIN
可能GROUP BY
更HAVING
有效:
SELECT g.id, g.genre_id
FROM Genre g
LEFT OUTER JOIN Music m ON m.genre_id = g.genre_id
GROUP BY g.id, g.genre_id
HAVING COUNT(*) > 4