php - 2条语句的SQL连接表结果

标签 php mysql sql-server wordpress join

我正在尝试通过 JOIN 从我的 Wordpress 数据库中使用 SQL 获取数据,但我没有让它工作。

我需要什么:

  • 元键“gtp_product_dont_show”存在且元值不是“真”的帖子。
  • 以及元键“gtp_product_dont_show”不存在的帖子。

我的问题:

我现在只得到帖子有元键“gtp_product_dont_show”的结果,但也有没有这个键的帖子,我也需要这些。

这是我现在拥有的:

SELECT 
    ID, post_title
FROM 
    wp_posts p
    JOIN wp_postmeta m ON 
        p.ID = m.post_id AND 
        m.meta_key = 'gtp_product_dont_show' AND 
        m.meta_value != 'true'
WHERE 
    post_type = 'products' AND 
    post_status = 'publish'

输出:

最佳答案

你需要一个左连接:

SELECT ID, post_title
FROM wp_posts p LEFT JOIN
     wp_postmeta m
     ON p.ID = m.post_id AND 
        m.meta_key = 'gtp_product_dont_show' 
WHERE (m.meta_value is null or m.meta_value <> 'true') and
      post_type = 'products' AND 
      post_status = 'publish';

left joinwp_postmeta 表中寻找合适的键。 where 子句然后说“在没有匹配项或值不正确时保留记录”——我认为这就是您正在寻找的逻辑。

关于php - 2条语句的SQL连接表结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30871080/

相关文章:

php - 具有不同 PHP 值的 CSS 饼图

php - mysql 查询输出显示计数的数据表

php - 加入 3 个 mysql 表 php codeigniter

php - 通过互联网从php web应用程序连接到本地mysql数据库

PHP像excel TREND函数一样计算趋势线

php - 无法使用::scope 运算符从实例访问类常量

php - 博客和新闻交织在一起 - 加入或联盟或其他什么?

sql - 使用 SQL CTE 表包含路径和所有子项

php - fetch_array 内的 sqlsvr_fetch_array

sql-server - SQL Server 2008 R2 内存不足,无法继续执行程序