为什么我的左连接作为内连接执行

时间:2014-09-20 09:48:12

标签: 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'
 ...

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

简单的左连接可能会出现什么问题?

1 个答案:

答案 0 :(得分:0)

它正在按预期工作。我无法想到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
;

但是,为什么你不会只使用原始(非加入)查询,这并不是很有道理。