#sql #select #count #left-join
#sql #выберите #подсчет #левое соединение
Вопрос:
Я пытаюсь показать все столбцы из моей таблицы t1_elem и объединить 2 столбца, в которых я использую COUNT.
Я использовал запрос:
SELECT p.*,COUNT(t4_id) as ile_publikacji, COUNT(t7_id) as ile_fitow
FROM t1_elem p
LEFT OUTER JOIN t4_autorzy ON p.t1_id=t4_autorzy.t4_t1_id
LEFT JOIN t7_pliki ON p.t1_id=t7_pliki.t7_t1_id
GROUP BY t1_id
Но результаты плохие. Что я делаю не так?
Комментарии:
1. «Но результаты плохие» Что плохого в результате??? Как кто-нибудь может вам с этим помочь?
Ответ №1:
Вероятно, у вас есть несколько совпадений. Как указано, два подсчета будут одинаковыми. Вероятно, самым простым решением является использование distinct
:
SELECT p.*, COUNT(DISTINCT t4_id) as ile_publikacji, COUNT(DISTINCT t7_id) as ile_fitow
FROM t1_elem p LEFT JOIn
t4_autorzy
ON p.t1_id = t4_autorzy.t4_t1_id LEFT JOIN
t7_pliki
ON p.t1_id=t7_pliki.t7_t1_id
GROUP BY t1_id
Комментарии:
1. Спасибо! Это решило мою проблему. Я прочитаю о
distinct
функции 🙂