Подсчет из нескольких таблиц с использованием левого соединения - PullRequest
0 голосов
/ 10 февраля 2012

Я использую следующий запрос, чтобы получить счет из нескольких таблиц: -

SELECT 
  b.sales_title,
  c.cat_name,
  count(b.sales_id) as cnt,
  count(e.comment_id) as coun  
FROM tb_sale_report a 
  inner join tbl_sales    b on a.sales_id=b.sales_id 
  inner join  tb_category c on c.cat_id=b.category_id 
  left  join tb_comment   e on b.sales_id=e.sales_id
GROUP BY b.sales_title

Я пытаюсь достичь

sales_title |   cat_name    |   cnt  |  coun
--------------------------------------------------
Affiliate   |   Kids toys   |   8    |  0
Date Check  |   Handbags    |   26   |  1
Date Date   |   My Category |   4    |  1
Future Date |   Handbags    |   3    |  0
Giovanni    |   Kids toys   |   4    |  1

Но вместо этого я получаю неправильныйсчитать, значения для столбца coun становятся неправильными, как это,

sales_title  |  cat_name    |   cnt  |  coun
---------------------------------------------
Affiliate    |  Kids toys   |   8    |  0
Date Check   |  Handbags    |   26   |  26
Date Date    |  My Category |   4    |  4
Future Date  |  Handbags    |   3    |  0
Giovanni     |  Kids toys   |   4    |  4

Как я могу написать запрос для достижения моей цели. Нужна помощь, я новичок в программировании. Спасибо заранее

1 Ответ

1 голос
/ 10 февраля 2012

Трудно сказать, если вы не сообщите нам структуру вашей таблицы / не предоставите небольшой фрагмент данных, который повторяет вашу проблему.Похоже, что ваша таблица комментариев реплицируется для выполнения соединения с таблицей tbl_sales, поэтому в счетчике есть дубликаты.

Попробуйте COUNT(DISTINCT e.comment_id) as coun, чтобы устранить эту проблему.

...