Мой SQL-fu слишком слаб для этого, и я даже не уверен, что это возможно в одном вызове SQL.Можно ли выбрать несколько условных счетчиков для трех таблиц в одном запросе SQL?
Учитывая У меня есть следующие таблицы:
PARTNER
+----+--------+
| id | name |
+----+--------+
| 1 | bloggs |
| 2 | jones |
PARTNER MANAGER
+----+--------------+------+
| id | partner_id | name |
+----+--------------+------+
| 1 | 1 | fred |
| 2 | 2 | dave |
COMPANY
+----+--------------------+--------+----------+
| id | partner_manager_id | name | active |
+----+--------------------+--------+----------+
| 1 | 1 | comp1 | true |
| 2 | 1 | comp2 | false |
| 3 | 2 | comp3 | true |
| 4 | 2 | comp4 | true |
| 5 | 2 | comp5 | true |
| 6 | 2 | comp6 | true |
которые я хотел бы, чтобы вывести следующий за один вызов SQL:
+--------------+--------------------+----------------------+
| partner_name | n_active_companies | n_inactive_companies |
+--------------+--------------------+----------------------+
| bloggs | 1 | 1 |
| jones | 4 | 0 |
я могу присоединиться три таблицы, используя два LEFT JOINs
, но как Я могу агрегировать подсчеты (с или без предложения WHERE
) ускользает от меня.
Я так лаяю неправильное дерево, так сказать?
я предпочитаю использовать представление SQL, если вы хотите от одного даного – Sudantha 2010-11-24 12:54:20