Mysql num строк в нескольких таблицах с использованием UNION - PullRequest
0 голосов
/ 16 августа 2010

Я пытаюсь найти количество строк для двух таблиц: Пример 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.

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 16 августа 2010

Использовать UNION ALL, UNION будет возвращать различные строки

0 голосов
/ 16 августа 2010

Я думаю, что вы должны сказать «UNION ALL» вместо UNION.
UNION Неявный DISTINCT, поэтому одни и те же значения отображаются только один раз ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...