我正在使用 PHP 和 PDO,我需要重新收集连接 3 个表的信息:
该表具有以下结构:
photos:
photo_id (int)
path (varchar)
nick (varchar)
date (timestamp)
albums
album_id (int)
album_name (varchar)
nick (varchar)
date (timestamp)
相册照片
album_id (int)
photo_id (int)
nick (varchar)
date (timestamp)
所以,我想显示所有相册,每张最多 5 张照片,其中用户昵称是“所有者”.
显示如下:
album_name_1:
[photo_1]
[photo_2]
[photo_3]
[photo_4]
[photo_5]
album_name_2:
[photo_1]
[photo_2]
[photo_3]
[photo_4]
[photo_5]
我只知道可以使用 INNER JOIN 来制作类似的东西,但我找不到如何用 3 个表来制作它。
我可以得到一些例子或其他帮助来做到这一点吗?
SELECT a.*, c.date
FROM Album a
INNER JOIN Album_Photo b
ON a.Album_ID = b.Album_ID
INNER JOIN Photo c
ON b.Photo_ID = c.Photo_ID
WHERE c.Nick = 'owner' AND
(
SELECT COUNT(*)
FROM album_photo d
WHERE b.album_id = d.album_id AND
d.nick = 'owner' AND
b.date >= d.date
) <= 2 // <<== change this value to 5
- SQLFiddle 演示 http://www.sqlfiddle.com/#!2/cd5a0/4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)