Мой пример немного глупо, но самое лучшее, которое было в моем уме;)граф строк на realted таблиц (два или более)
Zoo
===
Id
Name
Animal
=======
Id
Species
ZooId
Zookeeper
=========
Id
FullName
ZooId
С помощью следующих строк в них:
Zoo
===
1, New York
2, Berlin
Animal
======
1, Tiger, 1
2, Monkey, 1
3, Bear, 1
4, Tiger, 2
5, Zebra, 2
Zookeeper
=========
1, John Doe, 1
2, Peter Smith, 2
3, Ronald Jackson, 2
4, Michael Miller, 2
Мой ожидаемый результат должен быть:
New York, 3, 1
Berlin, 2, 3
Я пробовал следующий запрос, но это вздор.
SELECT Zoo.Name, COUNT(Animal.Id) AS Animals, COUNT(Zookeeper.Id) AS Zookeepers
FROM Zoo
LEFT JOIN Animal ON Animal.ZooId = Zoo.Id
LEFT JOIN Zookeper ON Zookeeper.ZooId = Zoo.Id
GROUP BY Zoo.Name
У меня одинаковое количество для обеих колонок, и для небольших наборов данных требуется минут.
Используйте индексирование на своих столбцах, например 'Animal.ZooId',' Zookeeper.ZooId' – Salil
COUNT (Zookeeper.Id), возможно? –
Все соответствующие поля имеют индекс. Я редактировал свой пост, я имел в виду COUNT (Zookeeper.Id) – dannyyy