Например, если в стране A (с основным идентификатором a.id = 118) существует штат B (с основным идентификатором b.id), внутри этого штата находится город C (с основным идентификатором c.id. ), В городе C есть область D (с основным идентификатором d.id), E (с основным идентификатором e.id), F (f.id) .lets визуализируют результат запроса в таблице базы данных.
C St Ct Ar
A-> B-> C-> D
A-> B-> C-> Е
A-> B-> C-> F
(Здесь C = Страна, St = Штаты, Ct = Города, Ar = Районы)
Теперь просто подумайте, что происходит, когда вы рассчитываете на приведенную выше таблицу, чтобы получить общее количество штатов в стране А без отличных. Результат равен 3, таким образом, количество городов равно 3, а областей - 3, всего 9. Потому что без Если вы получаете повторяющиеся значения, которые вас не интересуют.
Теперь, если вы используете различное количество, вы получите правильный результат, потому что здесь различные состояния под
страна А - 1, город - 1, а районы - 3, всего: 5 (исключая повторяющиеся значения).
Надеюсь, это работает!
!! Проблема дизайна !!!
Как добавить что-то: из вашей базы данных я вижу, что вы используете идентификатор страны в качестве ссылки для стран из таблицы стран (для штатов, областей и городов), а затем соединяете штаты и города, затем штаты и области (по идентификатор страны) не думаете ли вы, что это создает перекрестное соединение?. Лучший выбор дизайна - это таблица областей, в которой хранится внешний ключ города, таким образом, поднимайтесь снизу вверх, как в штатах с сохранением города и в штатах с сохранением страны. Или составьте таблицу для областей где вы храните внешний ключ стран, штатов, городов и первичный ключ областей.