Общие > Базы данных
Выборка из двух таблиц, при условии AND...
Лосик:
Вопрос. Есть две таблицы:
Компания
company_id
address
...
и
Филиалы
filial_id
company_id
address
...
В них, потяное дело, живут "компании", которые имеют разный address и их филиалы, по каждому из которых хранится company_id и опять же address. Вопрос -- как выбрать все филиалы одной компании, которые находятся в N указаных городов? Конструкция вида
SELECT * FROM Компания, Филиалы WHERE Компания.company_id=Филиалы.company_id AND address="Питер" AND address="Москва"
естественным образом не канает.
Попытки извращаться с разнообразными подзапросами, скобками, логикой не спасают...
Zotoff:
SELECT filial_name FROM company, filial WHERE company.company_id=filial.company_id AND (company.address="Питер" OR company.address="Москва")
Попробуй так.
Chs:
--- Цитировать ---address="Питер" AND address="Москва"
--- Конец цитаты ---
И как это должно работать в связке and? :)
OR поможет + скобки :)
Лосик:
А, сорри, забьыл указать, это тоже не то. Выбирает и тех, у кого есть филиал _ИЛИ_ в Питере _ИЛИ_ в Москве... Нужны только те, у кого _И_ там и там...
Ни скобки ни чего -- не катит. Ибо, насколько понял (роюсь уже доках неделю как 8) -- при просмотре по строкам в случае AND это AND это, выполнятель запросов ищет строку, которая соотв ествовала бы и тому и другому условию, что невозможно... (но это предположение).
Лосик:
Все-таки, похоже SQL на такое не способен (без хитрых извращений) принципиально...
Навигация
Перейти к полной версии