根据另一个表的某些列匹配的总结果从MySQL中选择

根据另一个表的某些列匹配的总结果从MySQL中选择,mysql,Mysql,我的数据库中有两个表 类型包括:id、类型\ id 音乐包含:id、歌曲id、流派id 我想展示以下结果: SELECT * FROM Genre WHERE total number of rows in Music WHERE Genre.genre_id = Music.genre_id > 4 几个小时以来,我一直在绞尽脑汁尝试使用JOIN来获取它,但我无法从逻辑上解决它,然后将其放入mysql代码中 所需的输出只是有效查询中的几个小语法更改: SELECT * FROM

我的数据库中有两个表

类型包括:id、类型\ id

音乐包含:id、歌曲id、流派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
虽然这可能是最容易理解的方法,但左外连接、分组和have的组合可能更有效:

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