【发布时间】:2014-09-27 23:19:50
【问题描述】:
我有一个相册,允许用户创建个人相册。 我可以这样显示每张专辑的名称。
$album = DB::getInstance()->query("SELECT `album_id`,`album_date`,`album_title` FROM `albums` ORDER BY `album_date` DESC");
我正在尝试为每张专辑添加一张封面照片,但似乎无法让我的查询正确。 这就是我正在尝试的。
$album = DB::getInstance()->query("SELECT
albums.album_id,
albums.created,
albums.album_date,
albums.album_title,
gallery.file_name,
gallery.id,
gallery.album_id
FROM
albums
INNER JOIN gallery ON gallery.album_id = albums.album_id ORDER BY gallery.id DESC ;");
这是我得到的结果:
这是我想要达到的结果:
我希望每个相册名称都显示为每个相册的最后一张照片作为封面照片。
如果我在查询中添加 LIMIT 1,则只会显示一张专辑。
这是我通过外键连接在一起的表。
专辑列表:
画廊表:
任何解决此问题的解决方案将不胜感激。
【问题讨论】:
-
如果您有 gallery.file_name,您可能需要将其替换为子查询以检索您想要的图像。
-
@jeff 你介意给我看一个如何编写子查询的例子吗?不必使用我的查询。感谢您的帮助。
-
SELECT 项目,(从 y=1 限制 1 的 x 中选择项目)从 s=10 的地方。子查询只能返回一个值。
-
您的相册保存在目录中对吗?如果是这样,为什么不按创建日期和时间选择最后一个文件——类似的问题在这里——stackoverflow.com/questions/12184619/…
-
ORDER BY gallery.id AND gallery.id DESC - 看起来有点搞笑