我正在寻找是否可以通过一个查询获得所需的结果,而我的MySQL技能仍处于青春期.
我有4张桌子:表演,艺术家,场地和游览.现在,我的主查询的简化版本如下所示:
SELECT *
FROM artists AS a,venues AS v,shows AS s
LEFT JOIN tours AS t ON s.show_tour_id = t.tour_id
WHERE s.show_artist_id = a.artist_id
AND s.show_venue_id = v.venue_id
ORDER BY a.artist_name ASC,s.show_date ASC;
我要添加的是每个艺术家返回的演出数量的限制.我知道我可以选择* FROM artist,然后为每个返回的行运行一个带有简单LIMIT子句的查询,但是我认为必须有一种更有效的方法.
更新:为简单起见,我想为每位艺术家选择最多5个节目.我知道我可以做到这一点(消除所有麻烦):
<?PHP
$artists = $db->query("SELECT * FROM artists");
foreach($artists as $artist) {
$db->query("SELECT * FROM shows WHERE show_artist_id = $artist->artist_id LIMIT 5");
}
?>
最佳答案
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。