Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Не пойму как составить запрос (Алексей) 08/11/2012 - 02:51:49
      Re: Не пойму как составить запрос (Akina) 08/11/2012 - 09:53:29
      Re: Не пойму как составить запрос (Алексей) 08/11/2012 - 11:06:46
      Re: Не пойму как составить запрос (Akina) 08/11/2012 - 18:01:54
      Re: Не пойму как составить запрос (Алексей) 13/11/2012 - 05:01:02

> Original message text:
> From: Алексей - 08/11/2012 - 02:51:49
> Subject:Не пойму как составить запрос
> -----------------
> Есть запрос, работает нормально если idrabotnik не равен 0
>
> SELECT autonomer, model.automodel, garnomer, autotype, rabotnik.famrabotn, rabotnik.namerabotn, rabotnik.otchrabotn, FROM automash,model,rabotnik
> WHERE automash.automodel=model.idautomodel, AND automash.autootvvod=rabotnik.idrabotnik
>
> Пробовал переделать запрос на:
> SELECT autonomer, model.automodel, garnomer, autotype, IFNULL(rabotnik.famrabotn,'net'),IFNULL(rabotnik.namerabotn,''),IFNULL(rabotnik.otchrabotn,'') FROM automash,model,rabotnik
> WHERE automash.automodel=model.idautomodel, AND automash.autootvvod=rabotnik.idrabotnik
>
> нет эффекта
>
> Помогите ПОЖ.
>
> Если idrabotnik=0 надо вернуть famrabotn='net',namerabotn='',otchrabotn=''
>


From: Akina - 08/11/2012 - 18:01:54
Subject:Не пойму как составить запрос
-----------------
АГа... теперь более-менее понятно.
Декартово произведение с фильтрацией тут не поможет. Необходимо левое соединение:

FROM automash
LEFT JOIN rabotnik
ON automash.autootvvod=rabotnik.idrabotnik

В результате в выборку попадут все записи из таблицы automash. И где ноль, и где есть соотв. rabotnik.idrabotnik, и где ни то, ни другое.

Осталось отбросить записи, которые "ни то, ни другое" - это следует сделать в секции фильтрации

WHERE (automash.autootvvod = 0 OR rabotnik.idrabotnik IS MOT NULL)
AND/OR остальные условия.

Выходные поля Вы сформировали верно. С той лишь оговоркой, что вместо специфичного IFNULL я бы рекомендовал использовать стандартное COALESCE.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
41873



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |