2015-11-22 7 views
2

У меня есть следующий оператор MySQL, в котором есть несколько операторов выбора, из которых выполняется выбор для всех результатов, возвращаемых другим выбором. Просто интересно, можно ли его объединить в один случай. Например. Как тройное соединение.Слияние/объединение двух операторов выбора в один

select networks.name as network_name, installations.name as installation_name 
from network_installations 

join installations on installations.id = network_installations.installation_id 

join networks on networks.id = network_installations.network_id 

where network_installations.network_id in (
    select network_installations.network_id 
    from network_installations 
    where network_installations.installation_id = 1 
); 

Примечание. Я выполнил sql-запросы, но это мой первый опыт работы с sql-соединениями.

+0

пытались ли вы его? – FuzzyTree

+0

@FuzzyTree Без попытки я бы не дошел до сих пор. Первоначально я сохранил результат выбора в массиве PHP и сделал предварительный выбор для первого запроса и добавил результаты. Затем я изменил его на предыдущий, и теперь я пытаюсь объединить оба. До сих пор все мои запросы на слияние не удались. Вот почему я сделал сообщение. – DhiwaTdG

ответ

1

Использование псевдонимов для таблиц network_installations:

select networks.name as network_name, installations.name as installation_name 
from network_installations ni1 
join installations on installations.id = ni1.installation_id 
join networks on networks.id = ni1.network_id 
join network_installations ni2 on ni2.network_id = ni1.network_id 
where ni2.installation_id = 1 
+1

Работает отлично. Спасибо за груз. @mnv – DhiwaTdG

Смежные вопросы