【问题标题】:assistance creating a SQL Query协助创建 SQL 查询
【发布时间】:2011-02-28 20:52:11
【问题描述】:

对 SQL 查询有点陌生,我需要一些关于我的联接的帮助。

我得到了 gid

对于其中的每一个,我需要从表 wp_ngg_gallery

中获取 name

然后加入表 wp_ngg_pictures 并通过字段 imagedate 获取字段 filename 限制 1 顺序 DESC

有人可以帮忙吗?

【问题讨论】:

    标签: php mysql wordpress join


    【解决方案1】:

    如果您希望它用于多个 gid(为单个选择其他选项):

    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)
    

    【讨论】:

    • 我不确定你在那里做什么,但它没有按imagedate 排序,而且你使用的是静态IN () 方法。假设他想配对所有记录。
    • 您需要WHERE b.galleryid IS NULL,而不是a.gallaryid IS NULL,但这是我使用greatest-n-per-group 标签回答的几十个问题的解决方案。但是,OP 并没有说他们需要搜索多个 gid,因此可以通过更简单的查询来回答他们的问题。
    • @Bill : 哎呀,已修复 :) (这就是我明确说只使用 if 用于 multples 的原因)@Josh K:你们这些不信的人,去测试一下,让我们有很多欢喜新知识。
    【解决方案2】:

    我猜:

    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 来修改其他人的查询(使用外连接)。

    【讨论】:

    • 刚刚添加和 wpp_ngg_gallery.gid = [提供的号码],这工作!
    【解决方案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;
    

    这是假设您需要一个 JOIN。可以通过一个像样的GROUP BY 声明来完成。

    【讨论】:

    • 这很好,但我需要指定 GID。例如 - 其中 GID = 3
    • +1 用于使用外连接——不假设画廊有任何图片。
    • @Wes:然后在查询中添加WHERE wp_ngg_gallery.gid = [GID]。 @Bill:谢谢。
    猜你喜欢
    • 1970-01-01
    • 2013-10-26
    • 2014-06-22
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多