【问题标题】:MySQL left join needed on Wordpress databaseWordpress 数据库需要 MySQL 左连接
【发布时间】:2014-01-02 14:27:21
【问题描述】:

我是 MySQL 新手,最后在标准 Wordpress 数据库上使用此语句来获取最新文章。 但是,下面的语句要求在 [wp_postmeta] 中找到相关行才能获取属于该文章的缩略图。 但是,有些帖子可能没有缩略图,但我仍然想选择那些。

如何将语句更改为不需要 [wp_postmeta] 中的缩略图值?我相信我需要一个left join 子句,但不知道该怎么做。

SELECT p.*, ( SELECT guid FROM wp_posts WHERE id = m.meta_value ) AS imgurl 
FROM wp_posts p, wp_postmeta m
WHERE p.post_type =  'post'
AND p.post_status =  'publish'
AND p.id = m.post_id
AND m.meta_key =  '_thumbnail_id'
ORDER BY post_date DESC

【问题讨论】:

    标签: mysql wordpress left-join


    【解决方案1】:

    用 join 和 ON(p.id = m.post_id AND m.meta_key = '_thumbnail_id' ) 试试这个

    SELECT DISTINCT p.*, ( SELECT guid FROM wp_posts WHERE id = m.meta_value LIMIT 1) AS imgurl 
    FROM wp_posts p
    LEFT JOIN  wp_postmeta m ON(p.id = m.post_id AND m.meta_key =  '_thumbnail_id' )
    WHERE p.post_type =  'post'
    AND p.post_status =  'publish'
    ORDER BY post_date DESC
    

    【讨论】:

      【解决方案2】:

      使用此查询将获取最新的 5 个帖子,您可以增加显示限制。

       $sql = " SELECT * FROM wp_posts p
      WHERE p.post_type =  'post'
      AND p.post_status =  'publish'
      AND p.post_type = 'post'
      ORDER BY p.post_date DESC
      LIMIT 5";
      

      【讨论】:

        猜你喜欢
        • 2017-07-05
        • 2020-12-16
        • 2012-03-17
        • 2021-11-27
        • 2017-07-08
        • 1970-01-01
        • 2015-01-25
        • 2021-08-23
        • 1970-01-01
        相关资源
        最近更新 更多