MySql получить количество, значение из 3-й таблицы со ссылкой из 1-й таблицы - PullRequest
2 голосов
/ 25 февраля 2020

Я хотел бы получить значение Count из 3-й таблицы ... 1-я таблица имеет идентификатор ссылки на 2-ю таблицу, 2-я таблица имеет идентификатор ссылки 3-й таблицы ... в 3-й таблице есть значение ... что мне нужно посчитать ... Структура таблицы:

table1: tbl_rack

+------------+---------+--------+
| rack_id    | site_id | status |
+------------+---------+--------+
| R-642      | ST5     | Y      |
| R-307      | ST6     | Y      |
| R-57       | ST7     | Y      |
| 390/6      | ST8     | Y      |
| 9706       | ST11    | Y      |

table2: tbl_site

+---------+-------------+-----------+
| site_id | customer_id | region_id |
+---------+-------------+-----------+
| ST5    | CM8          | RM4       |
| ST6    | CM8          | RM8       |
| ST7    | CM10         | RM2       |
| ST8    | CM11         | RM12      |
| ST11   | CM8          | RM10      |

table3: tbl_customer

+-------------+----------------------+---------------+
| customer_id | customer_name        | customer_type |
+-------------+----------------------+---------------+
| CM8         | LIVI-IN              | MODERATE      |
| CM10        | PEPE                 | HIGH          |
| CM11        | SANDER               | LOW           |
| CM12        | TOASTER              | MODERATE      |

Я хочу подсчитать, сколько клиентов содержит сколько Стоек, где статус рангов равен 'Y'

Ожидается Результат1:

Customer    No.of Racks
LIVI-IN     3
OTHERS      2

Ожидается Результат2:

Customer Type   No.of Racks
Moderate         3
High             1
Low              1

1 Ответ

2 голосов
/ 25 февраля 2020

Пожалуйста, следуйте ниже SQL запрос:

select C.customer_name as 'Customer', count(*) as 'No.of Racks' 
from tbl_customer C
left outer join tbl_site TS on TS.customer_id = C.customer_id
left outer join tbl_rack TR on TR.site_id = TS.site_id
group by C.customer_name
order by  C.customer_name
...