php - 有人可以告诉我这个查询有什么问题吗?

标签 php mysql sql

SELECT p.post_title FROM wp_posts p
LEFT JOIN wp_term_relationships tr on (p.ID = tr.object_id)
LEFT JOIN wp_term_taxonomy tt on (tr.term_taxonomy_id = tt.term_taxonomy_id)
LEFT JOIN wp_term_taxonomy tt2 on (tr.term_taxonomy_id = tt2.term_taxonomy_id)
WHERE 
tt2.term_id IN( 36, 32)
AND tt.term_id = 33
AND p.post_type = 'post'

实际上,我有两种不同的分类法(即状态和类别),每个分类法都有很多术语。我必须检查某个类别术语(该 term_id 33)有多少个状态术语 term_id 36 或 32 的帖子。

实际上,我需要将条件应用到同一列(wp_term_taxonomy 表)两次。

以上查询没有返回任何内容。伙计们,请帮助我。

最佳答案

请勿在 WHERE 条件 中使用与 LEFT JOIN TABLE 相关的列,否则这些列将作为 INNER JOIN 工作,因此

SELECT p.post_title FROM wp_posts p
LEFT JOIN wp_term_relationships tr on (p.ID = tr.object_id)
LEFT JOIN wp_term_taxonomy tt on (tr.term_taxonomy_id = tt.term_taxonomy_id) 
        AND tt.term_id = 33
LEFT JOIN wp_term_taxonomy tt2 on (tr.term_taxonomy_id = tt2.term_taxonomy_id) 
        AND tt2.term_id IN ( 36, 32)
  WHERE p.post_type = 'post'

关于php - 有人可以告诉我这个查询有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47209954/

相关文章:

php - 如何在 PHP 中使用 Mojang API

mysql - 序列化连接以故障转移写入副本

mysql - 如何使用 SQL 更改 mysql 服务器日期

mysql - SQL 查询查找事件是否在类别列表中

mysql - 如何重用 MySQL Workbench 中的表?

php - 如何在 Woocommerce 中的“添加到购物车”按钮上显示加载图标

php - 如何在运行 Ubuntu 12.04 和 PHP 5.4 的 vagrant box 上安装 APC?

php - 3 MYSQL查询使用1个查询和限制

php - 从 mysql+php 获取结果并以钛显示

sql - 如何在单个 SQL 语句中查询两次 postgresql 表