|
|
|
| Всем привет!
Блин, не знаю даже как лучше описать задачу...
Нужно сделать запрос с проверкой по различным полям в зависимости от значения одного поля =)
Т.е.
есть допустим такая таблица
id # flag # param1 # param2 # param3
|
Вот если flag=0, то должен быть такой запрос
SELECT from table_name WHERE param1<param3
|
А если flag=1, то такой
SELECT from table_name WHERE param2<param3
|
Как это реализовать в 1 запросе? | |
|
|
|
|
|
|
|
для: ddhvvn
(21.10.2008 в 18:36)
| | SELECT from table_name WHERE IF(flag, param2, param1 ) < param3 | |
|
|
|
|
|
|
|
для: Trianon
(21.10.2008 в 20:01)
| | Спасибо! Как все просто ))
Блин, надо уже плотно заняться изучением mysql...
добавлено
тут еще 1 "затруднение", но на порядок сложнее (по крайней мере для меня).
Трианон, пожалуйста, выручайте! )))
Есть таблица можно сказать такая же, как в 1 посте
id_parent # id_child # flag2 # другие поля
|
и есть еще 1 таблица (как в 1 посте)
id_child # flag # param1 # param2 # param3 # другие поля не имеют значения
|
И есть третья таблица
id_child # param1 # param2 # другие поля
|
Вторая и третья таблицы зависит от первой.
Нужно вытащить рандомно 1 строку из первой таблицы, по условию ко второй или третьей таблице.
Из первой таблицы рандомно должна быть выбрана строка (если конечно таковая имеется), которая удовлетворяет следующим условиям:
если flag=0
-во второй таблице должно быть
если flag=0, param1<=param3
если flag=1, param2<=param3
если flag=1
-из третьей таблицы, где param1<=param2
p.S.: надеюсь понятно объяснил))
P.P.S.: изменить структуру БД сейчас, к сожалению, нельзя! | |
|
|
|
|
|
|
|
для: ddhvvn
(21.10.2008 в 21:02)
| | таблицы связаны как-нибудь? | |
|
|
|
|
|
|
|
для: Trianon
(21.10.2008 в 21:28)
| | ну по id_child | |
|
|
|
|
|
|
|
для: ddhvvn
(21.10.2008 в 22:06)
| | ну вот я не должен об этом догадываться.
SELECT t1.*
FROM table1 AS t1
LEFT JOIN table2 AS t2 ON t1.id_child = t2.id_child
LEFT JOIN table3 AS t3 ON t1.id_child = t3.id_child
WHERE IF(t1.flag2=0, и т.д.
|
>p.S.: надеюсь понятно объяснил))
не надейтесь. Совершенно непонятно. | |
|
|
|
|
|
|
|
для: Trianon
(21.10.2008 в 22:09)
| | Наугад писали? =)
или мысли "скачали" )))
сейчас попробую... | |
|
|
|
|
|
|
|
для: Trianon
(21.10.2008 в 22:09)
| | Все! Вроде разобрался =) | |
|
|
|