SQL查询有点新,我需要帮助加入。
我提供 gid
对于其中的每一项,我需要从表 wp_ngg_gallery
中获取名称然后加入表 wp_ngg_pictures 并按字段 imagedate抓取字段文件名限制 1 订单 DESC
alt text http://cl.ly/80c22b7010ab8f021558/content
alt text http://cl.ly/bfdf41b3706d25e0ee10/content
任何人都可以提供帮助吗?
答案 0 :(得分:3)
让我知道这是如何工作的。如果你以SQL格式转储这两个表(用phpMyAdmin),我将创建本地数据库并自己运行(假设这不起作用)。
SELECT
`wp_ngg_gallery`.`name`,
`wp_ngg_pictures`.`filename`
FROM
`wp_ngg_gallery`
LEFT JOIN
`wp_ngg_pictures`
ON
`wp_ngg_gallery`.`gid` = `wp_ngg_pictures`.`galleryid`
ORDER BY
`wp_ngg_pictures`.`imagedate` DESC
LIMIT
0,1;
这假设您需要加入。它可能是用一个不错的GROUP BY
语句完成的。
答案 1 :(得分:0)
我猜:
select wp_ngg_gallery.name, wp_ngg_pictures.filename
from wp_ngg_gallery, wp_ngg_pictures
where wp_ngg_pictures.galleryid = wp_ngg_gallery.gid
order by wp_ngg_pictures.imagedate DESC
limit 0,1
如果您需要特定的GID,则可以执行以下操作:
select wp_ngg_gallery.name, wp_ngg_pictures.filename
from wp_ngg_gallery, wp_ngg_pictures
where wp_ngg_pictures.galleryid = wp_ngg_gallery.gid
and wp_ngg_gallery.gid = $gid
order by wp_ngg_pictures.imagedate DESC
limit 0,1
(如果您的查询是PHP中的字符串,则$ gid有效,但您没有说,如果这是您正在使用的内容)
目前尚不清楚wp_ngg_pictures.galleryid是否是wp_ngg_gallery.gid的外键,但鉴于您提供的信息,它是最可能的选择。如果不是(如果您可以拥有没有图像的图库),您可能希望通过向其添加and wp_ngg_gallery.gid = $gid
来修改其他人的查询(使用外部联接)。
答案 2 :(得分:0)
如果你想要多个 gids(为一个选择其他选项):
SELECT gid,name, a.filename
FROM wp_ngg_gallery
JOIN wp_ngg_pictures a
ON a.galleryid = gid
LEFT JOIN wp_ngg_pictures b
ON a.galleryid = gid
AND b.imagedate > a.imagedate
WHERE b.galleryid IS NULL
AND gid IN (1,2,3)