Новости
Документация
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: ZoldBerg - 29/06/2009 - 16:48:49
Subject:Left Join и дефолтные значения
-----------------
все хорошо но OR часть правая отрабатывет в любом случае и в результате мы получаем дублирование данных к тому же `users`.`favourite_color_id` IS NULL для моего случая не подходит т.к. у меня если это поле null то с joina должны быть тоже null. `favorite_colors`.`id` и `favorite_colors`.`language_id` это составной primary key таблицы favorite_colors а в таблице `users` есть только поле `users`.`favourite_color_id` которое может быть null это значит что юзеру ничего не нравиться. Язык соответственно приходит из другого места но не факт что в таблице favorite_colors он переведен, поэтому существует дефолтное значения языка. В общем вроде бы обьяснил. Спасибо за попытки помочь. Пока сделал костыль в логике приложения, но буду очень рад за идеи


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

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

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



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