我正在尝试通过 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 join
在 wp_postmeta
表中寻找合适的键。 where
子句然后说“在没有匹配项或值不正确时保留记录”——我认为这就是您正在寻找的逻辑。
关于php - 2条语句的SQL连接表结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30871080/