Философия STL - то, что Вы выбираете контейнер на основе гарантий а не на основе того, как контейнер реализован. Например, Ваш выбор контейнера может быть основан на потребности в быстрых поисках. Для всего Вы заботитесь, контейнер может быть реализован как однонаправленный список - пока поиск очень быстр, Вы были бы счастливы. Поэтому Вы не касаетесь внутренностей во всяком случае, Вы используете итераторы или функции членства для доступа. Ваш код не связывается с тем, как контейнер реализован, но с тем, как быстро это, или имеет ли это фиксированное и определенное упорядочивание, или эффективно ли это на пространстве и так далее.
SELECT `locations`.`name`
FROM `locations`
INNER JOIN `school_locations`
ON `locations`.`id` = `school_locations`.`location_id`
INNER JOIN `schools`
ON `school_locations`.`school_id` = `schools_id`
WHERE `type` = 'coun';
пункт WHERE
должен быть в конце выписки
Попробуйте следующее:
SELECT Locations.Name, Schools.Name
FROM Locations
INNER JOIN School_Locations ON School_Locations.Locations_Id = Locations.Id
INNER JOIN Schools ON School.Id = Schools_Locations.School_Id
WHERE Locations.Type = "coun"
Вы можете присоединить места к School_Locations, а затем от School_Locations к школе. Это формирует набор всех связанных местоположений и школ, которые вы затем можете перебрать, используя предложение WHERE, до тех, чье Location имеет тип "count".
You can use as many joins as you want, however, the more you use the more it will impact performance