|
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:49:45
Subject:Left Join и дефолтные значения
-----------------
Дошло почему у тебф выдает более 1 строки.
Следующий запрос должен выдавать корректно при условии что
`favorite_colors`.`id`=0 это дефаулт значения.
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 (`users`.`favourite_color_id` IS NULL AND `favorite_colors`.language_id=1 AND `favorite_colors`.id=0))
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
35837
|
|