mysql - 左连接不起作用

标签 mysql sql wordpress taxonomy taxonomy-terms

我有 2 个分类法:citystreet

我需要为我的一个插件获取 postmeta

只有一个分类的工作代码:

SELECT *
FROM $wpdb->postmeta
LEFT JOIN $wpdb->posts ON($wpdb->posts.ID = $wpdb->postmeta.post_id)
LEFT JOIN $wpdb->term_relationships ON ($wpdb->postmeta.post_id = $wpdb->term_relationships.object_id)
LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
WHERE meta_key LIKE 'rwp_rating%'
  AND ($wpdb->term_taxonomy.taxonomy = 'city'
       AND $wpdb->term_taxonomy.term_id = '2')

但是如果我追加

AND ($wpdb->term_taxonomy.taxonomy = 'street' AND $wpdb->term_taxonomy.term_id = '5')

它返回空结果。

我也尝试这样做:

SELECT *
FROM $wpdb->postmeta
LEFT JOIN $wpdb->posts ON ($wpdb->posts.ID = $wpdb->postmeta.post_id)
LEFT JOIN $wpdb->term_relationships ON ($wpdb->postmeta.post_id = $wpdb->term_relationships.object_id)
LEFT JOIN $wpdb->term_taxonomy AS t1 ON ($wpdb->term_relationships.term_taxonomy_id = t1.term_taxonomy_id)
LEFT JOIN $wpdb->term_taxonomy AS t2 ON ($wpdb->term_relationships.term_taxonomy_id = t2.term_taxonomy_id)
WHERE meta_key LIKE 'rwp_rating%'
  AND (t1.taxonomy = 'city'
       AND t1.term_id = '2')
  AND (t2.taxonomy = 'street'
       AND t2.term_id = '3331');

而且它也不起作用。

请注意:我需要同时匹配两者,例如:city = 2 AND street = 2
不是:city = 2 OR street = 2

最佳答案

您的第一次尝试不会成功,因为单个分类记录不能同时包含街道和城市。

将您的第二次尝试更新为:

SELECT * FROM $wpdb->postmeta 
LEFT JOIN $wpdb->posts ON ($wpdb->posts.ID = $wpdb->postmeta.post_id) 
LEFT JOIN $wpdb->term_relationships ON ($wpdb->postmeta.post_id = $wpdb->term_relationships.object_id) 
LEFT JOIN $wpdb->term_taxonomy as t1 ON ($wpdb->term_relationships.term_taxonomy_id = t1.term_taxonomy_id AND t1.taxonomy = 'city') 
LEFT JOIN $wpdb->term_taxonomy as t2 ON ($wpdb->term_relationships.term_taxonomy_id = t2.term_taxonomy_id AND t2.taxonomy = 'street') 
WHERE meta_key LIKE 'rwp_rating%' AND t1.term_id = '2' AND t2.term_id = '3331');

关于mysql - 左连接不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42429557/

相关文章:

SQL表设计帮助

mysql - SQL查询top 100,反向显示

php - 无法比较 WordPress php 中的 IP 地址

java - MySQL 8 的 Hibernate 方言?

mysql - 合并 2 个表

php - 如何使用 javascript 创建一个简单的按钮来调用 zend 框架中的 zend 操作?

使用 implode() 函数时的 PHP MySQL 查询值

java - 如何监控数据库事务?

php - 您如何扩展Themosis helpers.php函数?

javascript - 加载图像后,parentNode 不会更新 .class