Есть 3 таблицы:
FIRM: | id | title |
OFFICE: | id | title | firm_id | city_id |
CITY: | id | title |
Как достать title всех FIRM, чьи OFFICE есть в CITY по CITY.id?
Выберем FIRM.title по указанному значению CITY.id, присоединив таблички FIRM и OFFICE по совпадению ключей, а также сгруппировав результат по FIRM.id, заодно избавившись тем самым от дубликатов:
SELECT FIRM.title FROM CITY
LEFT JOIN OFFICE ON OFFICE.city_id = CITY.id
LEFT JOIN FIRM ON OFFICE.firm_id = FIRM.id
WHERE CITY.id = 1
GROUP BY FIRM.id;
select f.title from firm f inner join office o on o.firm_id = f.id where o.city_id = 1
Или, при необходимости
select distinct f.title from firm f inner join office o on o.firm_id = f.id where o.city_id = 1
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости