我正在尝试查找两个表的行数: 示例1返回81(这是错误的)。
SELECT p_id FROM j_posts
INNER JOIN j_blogs ON p_blog_id = b_id && b_approved = 1
WHERE p_is_draft = 0
UNION SELECT ep_id FROM j_external_posts
INNER JOIN j_blogs ON ep_blog_id = b_id && b_approved = 1
然后我尝试将查询分成两部分:
SELECT ep_id FROM j_external_posts INNER JOIN j_blogs ON ep_blog_id = b_id
&& b_approved = 1
查询的第一部分返回70,第二部分返回39.这是正确的行数。
SELECT p_id FROM j_posts INNER JOIN j_blogs ON p_blog_id = b_id
&& b_approved = 1 WHERE p_is_draft = 0
在示例1中我做错了什么?它应该返回109而不是81。
提前致谢
答案 0 :(得分:2)
使用UNION ALL,UNION将返回不同的行
答案 1 :(得分:0)
我认为你必须说“UNION ALL”而不是UNION UNION隐式DISTINCT如此相同的值只显示一次..