首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >展示相册封面所有相册相册

展示相册封面所有相册相册
EN

Stack Overflow用户
提问于 2014-09-27 23:19:50
回答 5查看 1.5K关注 0票数 0

我有一个图片库,我允许用户创建个人相册。我可以这样显示每一张专辑的名字。

代码语言:javascript
复制
$album = DB::getInstance()->query("SELECT `album_id`,`album_date`,`album_title` FROM `albums` ORDER BY `album_date` DESC");

我要做的是为每个相册添加一张封面照片,但似乎无法使我的查询正确。这就是我在尝试的。

代码语言:javascript
复制
$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 ;");

我得到的结果是:

这就是我想要达到的结果:

我希望每个相册名称显示与最后一张照片从每个相册作为封面照片。

如果我向查询添加1的限制,则只显示一张相册。

这是我的桌子是由外键连接在一起的。

专辑表:

画廊桌:

任何解决办法,以使这项工作将是非常感谢的。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-09-28 05:24:10

可以使用以下查询在每个相册中选择最近的图像:

代码语言:javascript
复制
SELECT album_id, MAX(id) id
FROM gallery
GROUP BY album_id

或者,您可以在每个相册中选择一个随机图像,如下所示:

代码语言:javascript
复制
SELECT g.album_id, (
    SELECT id FROM gallery g2
    WHERE g2.album_id = g.album_id
    ORDER BY RAND()
    LIMIT 1
) id
FROM gallery g
GROUP BY g.album_id

以上任何一个查询都可以插入完整的查询:

代码语言:javascript
复制
SELECT a.album_id, a.created, a.album_date, a.album_title,
       g.file_name, g.id, g.album_id
FROM albums a
INNER JOIN (
    # above query goes here
) alb_img USING (album_id)
INNER JOIN gallery g ON g.id = alb_img.id
ORDER BY a.album_date DESC;

如果您希望选择空相册以及包含一个或多个图像的相册,则将内部连接更改为左联接。

票数 1
EN

Stack Overflow用户

发布于 2014-09-27 23:48:13

试试看:

代码语言:javascript
复制
SELECT album_id, album_name, title, COALESCE(file_name, 'mydefaultimage.jpeg') 
  FROM albums
  LEFT JOIN gallery on album_id = album 
  ORDER BY added DESC
  LIMIT 1,1

如果没有图像,标题将是null,文件名将包含默认的图像名称。

编辑 no ,后的DESC

票数 0
EN

Stack Overflow用户

发布于 2014-09-28 03:44:23

试试这个:

代码语言:javascript
复制
SELECT
    `album`.`album_title`
    , (SELECT file_name FROM gallery WHERE gallery.`album_id` = album.`album_id` ORDER BY file_name DESC LIMIT 1) AS file_name
FROM
    `album`
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26080090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档