mysql - 为什么我的左连接表现为内连接

标签 mysql wordpress join

我想对 WordPress 表 wp_postswp_postmeta 执行左连接。

wp_posts 表中进行简单选择

 select ID from wp_posts

这是输出:

'1'
'2'
'14'
'15'
'16'
'17'
...

它应该执行我的左连接查询

select a.ID from wp_posts a
left JOIN wp_postmeta b on  b.post_id = a.ID

这是输出:

 '1'
 '1'
 '1'
 '2'
 '2'
 '2'
 '14'
 '14'
 '14'
 ...

这是不正确的,我的左连接不像这里的左连接。

我的简单左连接可能存在什么问题?

最佳答案

它正在正常工作。我想不出 LEFT JOIN 返回的行数比其他相同的 INNER JOIN 少的原因;说明这一点的最简单方法可能是将 wp_postmeta 中的字段添加到您的 SELECTed 字段并查看结果。 现在,如果您想要 wp_posts 中的所有 ID 值,您可以这样做:

SELECT DISTINCT a.ID 
FROM wp_posts a 
LEFT JOIN wp_postmeta b ON b.post_id = a.ID
;

但是,为什么您不只使用原始(非连接)查询并没有多大意义。

关于mysql - 为什么我的左连接表现为内连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25947470/

相关文章:

wordpress - 如何通过 localhost 在网络上本地启用 WordPress 网站

c# - 在 LINQ 中连接两个列表

php - 在 Wordpress 4.9+ 中显示来自 admin-ajax.php 的 PHP 错误

mysql - 我在 mysql 中的 str_to_date 返回 null

php - 如何以一种形式将多个文本框发布到数据库

Mysql Kubernetes Deployment helm chart 因准备就绪和事件探测失败而失败

php - 如何更改 WooCommerce 缩略图裁剪位置?

mysql - 代表同一 ID 检索数据时遇到错误

mysql - LEFT JOIN 和 COUNT 两个查询的区别

php - 将 sum() 结果存储在数据库中与在运行时计算