SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 07.02.2011 17:12:41

yellowcat
Участник
Зарегистрирован: 09.11.2010
Сообщений: 19

Выборка из 2-х таблиц

Уважаемые пользователи. Помогите составить запрос. Суть задачи:

есть 2 таблицы menu и aliases с полями соотвественно:

menu_id     parent_id     menu_group_id     ancor     title     href     sort_order     status


и

id     type     alias     real


Возможно ли вытянуть данные одним запросом? Выборка menu_id, id, type, alias, real.
Искать нужно по href и alias, причем в одной таблице может быть запись, а в другой не может.
Это что-то наподобии RIGHT и LEFT JOIN запроса, только одновременно. К примеру, href = alias = 'video'

если есть строка в обоих таблицах, вернуть

menu_id => 5,
id => 8,
type => 'category',
alias => 'video',
real => '....'


если ТОЛЬКО в первой

menu_id => 5,
id => NULL,
type => NULL,
alias => NULL,
real => NULL


если ТОЛЬКО во второй

menu_id => NULL,
id => 8,
type => 'category',
alias => 'video',
real => '....'


Огромное спасибо!

Неактивен

 

#2 08.02.2011 00:17:07

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Выборка из 2-х таблиц

Это называется FULL OUTER JOIN. В MySQL именно в таком виде не
поддерживается, но Вы всегда можете его переписать в виде
SELECT ... FROM a LEFT JOIN b ON ...
UNION
SELECT ... FROM a RIGHT JOIN b ON ...

Неактивен

 

#3 08.02.2011 00:20:29

yellowcat
Участник
Зарегистрирован: 09.11.2010
Сообщений: 19

Re: Выборка из 2-х таблиц

Что выгодней по ресурсам и времени? Выполнение одного сложного или двух просых запросов?

Неактивен

 

#4 08.02.2011 02:26:45

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Выборка из 2-х таблиц

Видимо, одного сложного — делать DISTINCT в приложении — неблагодарная
работа smile

Неактивен

 

#5 08.02.2011 09:01:51

yellowcat
Участник
Зарегистрирован: 09.11.2010
Сообщений: 19

Re: Выборка из 2-х таблиц

Я понял. Огромное спасибо. Начал курить мануалы и прочитал про FULL JOIN в теории. На практике в mysql не сроботало. Вы, как всегда, выручили!

Отредактированно yellowcat (08.02.2011 09:02:51)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson