从子查询MySQL

时间:2017-04-27 17:09:05

标签: php mysql

如果我完全错误的话,请随时指出,但我觉得我已经接近了。

我有两张桌子,曲目和艺术家,结构如下:

table structure

我已经编写了一个查询,根据艺术家对每种类型的曲目数量,得到艺术家最常见类型,具有给定的artID

SELECT `trackGenre` AS commonGenre
  FROM `tracks`
  WHERE artID=$artID
  GROUP BY `trackGenre`
  ORDER BY COUNT(*) DESC
  LIMIT 1

然而,现在我要做的是从艺术家中选择*,其中artName与搜索查询匹配,而艺术家中最常见的类型=特定类型。这是我到目前为止所做的:

SELECT * FROM artist
  WHERE artName LIKE '%example%'
    AND (SELECT trackGenre AS commonGenre
      FROM `tracks`
      WHERE ????
      GROUP BY `trackGenre`
      ORDER BY COUNT(*) DESC
      LIMIT 1)='Rock'

我非常感谢任何提示,不能完全理解这一点。

1 个答案:

答案 0 :(得分:0)

解决方案很简单,用于: artist.artID=tracks.artID 在查询的WHERE子句中。谢谢!