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




MySQL.RU - Webboard



Вернуться
Left Join и дефолтные значения (ZoldBerg) 26/06/2009 - 19:14:46
      Re: Left Join и дефолтные значения (PeaceCoder) 27/06/2009 - 18:06:28
      Re: Left Join и дефолтные значения (ZoldBerg) 29/06/2009 - 09:56:16
      Re: Left Join и дефолтные значения (PeaceCoder) 29/06/2009 - 12:13:29
      Re: Left Join и дефолтные значения (PeaceCoder) 29/06/2009 - 12:14:53
      Re: Left Join и дефолтные значения (ZoldBerg) 29/06/2009 - 16:48:49
      Re: Left Join и дефолтные значения (PeaceCoder) 29/06/2009 - 19:43:10
      Re: Left Join и дефолтные значения (PeaceCoder) 29/06/2009 - 19:49:45

> Original message text:
> From: ZoldBerg - 26/06/2009 - 19:14:46
> Subject:Left Join и дефолтные значения
> -----------------
> Доброго времени суток,
> есть следующий запрос:
> SELECT `users`.id AS id_users,`favorite_colors`.`language_id` AS `lan_id`, `favorite_colors`.`id` AS col_id
> FROM `users`
> LEFT JOIN `favorite_colors` ON
> ((`users`.`favourite_color_id` = `favorite_colors`.`id`)
> AND (`favorite_colors`.language_id=2 OR `favorite_colors`.language_id=1 ) )
> это лишь часть запроса на самом деле таких joinov будет больше
> вопрос следующий:
> Последняя строка AND (`favorite_colors`.language_id=2 OR `favorite_colors`.language_id=1 )
> второе значение дефолтное т.е. если `favorite_colors`.language_id=2 не существует то работает дефолтное все выбирается так как необходимо, НО если `favorite_colors`.language_id=2 существует то выбираються лишние rows так как отрабатывает и вторая часть `favorite_colors`.language_id=1 НЕОБХОДИМО составить таким образом чтобы если значение присутствует то выбирать его и дефолтное не использовать, а если отсутствует то выбирать только дефолтное
> Помогите плс с запросом, пытался копать в сторону IF но что то с joinami он не совсем корректно выбирает либо я не так понял принцип работы. Напоминаю что это лишь небольшая часть запроса, на самом деле joinov будет больше, но логика для остальных должна работать также
>


From: PeaceCoder - 29/06/2009 - 19:43:10
Subject:Left Join и дефолтные значения
-----------------
Ты не верно понял запрос. Он должен соединить юзеров и цвета только в двух случаях:
>>> `users`.`favourite_color_id` = NULL - тогда подключится таблица цветов с `language_id`=1
>>> `users`.`favourite_color_id` = `favorite_colors`.`id` - тогда подключится таблица цветов с language_id=2 для заданого `favourite_color_id`.

более двух строк выйдет только если у тебя в `favorite_colors`.`id` = NULL и `users`.`favourite_color_id` = NULL - следовательно не правильно поставлен вопрос. если в цветах ID нет NULL - должно выполнятся условие описанное выше.


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

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

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



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