MySql-запрос для получения результатов из двух таблиц - PullRequest
0 голосов
/ 11 сентября 2018

Я хочу получить общее количество розничных продавцов из таблицы розничного продавца и другие атрибуты из таблицы сведений о посещении.Этот запрос дает правильный результат для всех розничных продавцов и посещенных розничных торговцев, но дает неверный результат для количества отзывов, количества заказов и т. Д. В двух столбцах.

select count(distinctrow tbl_retailer.retailer_id) as total_retailers,count(distinctrow tbl_visit_info.retailer_id) as visited_retailers,
SUM( IF( tbl_visit_info.activity_type = 1 ,1,0)) AS feedback,
SUM( IF( tbl_visit_info.activity_type = 2 ,1,0)) AS promise_order,
SUM( IF( tbl_visit_info.activity_type = 3 ,1,0)) AS stock,
SUM( IF( tbl_visit_info.activity_type = 6 ,1,0)) AS payment
from tbl_visit_info,tbl_retailer 
where visitor_id=175 and tbl_retailer.sr_id=175;

Это моя таблица розничного продавца, из которой я хочуобщее количество розничных продавцов из этой таблицы

Это моя таблица visit_info, из которой я хочу подсчитать посещенных розничных торговцев, количество отзывов, Promise_order_count_stock_count и количество платежей, которые определены как в столбце Activity_type в таблице visit_info

1 Ответ

0 голосов
/ 11 сентября 2018

Есть два подзапроса, по одному для каждой таблицы.JOIN результаты.

select * from

(select sr_id, count(distinctrow retailer_id) as total_retailers
 from tbl_retailer 
 group by sr_id) tr

join

(select visitor_id,
        count(distinctrow retailer_id) as visited_retailers,
        SUM( IF( tbl_visit_info.activity_type = 1 ,1,0)) AS feedback,
        SUM( IF( tbl_visit_info.activity_type = 2 ,1,0)) AS promise_order,
        SUM( IF( tbl_visit_info.activity_type = 3 ,1,0)) AS stock,
        SUM( IF( tbl_visit_info.activity_type = 6 ,1,0)) AS payment
 from tbl_visit_info
 group by visitor_id) tvi

on tvi.visitor_id = tr.sr_id
where tvi.visitor_id = 175

Просто удалите предложение WHERE, чтобы получить информацию обо всех посетителях!

Кстати, distinctrow, вероятно, здесь не требуется.

...