|
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 - 27/06/2009 - 18:06:28
Subject:Left Join и дефолтные значения
-----------------
Не совсем понял "если значение присутствует". Какое значение в какой таблице? Я так понял `favorite_colors`.language_id.
Если у тя в столбце `favorite_colors`.language_id стоит default '1', то у тебя везде будет либо заданное либо 1.
Тебе надо получить значение `favorite_colors`.language_id или надо декартово перемножение users и `favorite_colors` ?
Если получить значение, то проще так:
SELECT id AS id_users, `favourite_color_id` AS col_id,
(SELECT `language_id` FROM `favorite_colors` WHERE id=col_id) AS `lan_id`
FROM `users` AS US
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
35837
|
|