【发布时间】:2013-03-08 18:54:26
【问题描述】:
我正在尝试从三个表(照片、相册、album_photos)中获取数据, 然后程序在相册表中搜索用户的相册,然后在album_photos中查找每个相册的照片ID,然后,对于每个ID,按ID查看照片表中的所有数据。
昨天我问了这样的问题:Inner join with 3 tables,但现在,我认为问题不同了,我想知道如何为inner join 的请求添加限制。
所以,我现在正在使用这段代码:
SELECT a.album_name, a.album_id, c.*
FROM albums a
INNER JOIN album_photos b ON a.album_id = b.album_id
INNER JOIN photos c ON b.photo_id = c.photo_id
WHERE (
SELECT COUNT(*)
FROM album_photos d
WHERE b.album_id = d.album_id
AND d.nick = :nick
) <=5
好的,此代码选择包含 5 张或更少照片的相册。我不希望代码这样做,无论相册有多少张照片,我都希望显示相册的 LIMIT OF 5 张照片。
其他人告诉我你做不到,我相信不是这样,因为SQL语言很复杂,我认为我们应该有工具来做。
有没有办法以适当的方式做到这一点?
*在我上面分享的链接中,我举了一个关于输出数据的例子。
【问题讨论】:
-
请添加示例数据和预期输出
-
在我分享的链接中,你可以找到预期的输出!
标签: mysql sql inner-join sql-limit