|
|
|
| Есть 2 таблицы t1 и t2, тоесть по факту одна, но в запросе я её размножаю.
Там есть поле menu типа boolean, мне нужно в where составить условие так, чтобы выбирались только t1.menu = 1 и если существуют t2.menu = 1 то выбирать и их.
А то у меня получается что t1.menu = 1 а для него нет соответствующих t2 и возвращается пустой результат, а мне нужно чтобы вернулся t1.menu.
Загвоздка как раз состоит в том, чтобы проверить во время выполнения условия, существует ли хотя бы одно t2.menu = 1 | |
|
|
|
|
|
|
|
для: keyses
(24.03.2011 в 14:51)
| | Хм... как выглядит запрос сейчас? Возможно вам подойдет соединение по LEFT JOIN? | |
|
|
|
|
|
|
|
для: cheops
(24.03.2011 в 17:04)
| | поясню ещё раз, мне нужно:
1. выбираются все записи где t1.menu = 1
2. проверяется существует ли хотябы одна запить t2.menu = 1
3. если существует, то выбираем все t2.menu = 1
это всё должно быть в where, но как это реализовать, я не понимаю. | |
|
|
|
|
|
|
|
для: Keyses
(24.03.2011 в 18:27)
| | 1. Таблицы t1 и t2 как связаны?
2. Таблицы t1 и t2 - это разные таблицы или это псевдонимы одной таблицы? | |
|
|
|
|
|
|
|
для: cheops
(24.03.2011 в 19:07)
| | псевдоним одной таблицы, связаны через LEFT JOIN | |
|
|
|
|
|
|
|
для: Keyses
(24.03.2011 в 19:43)
| | Тогда не понятна фраза "чтобы выбирались только t1.menu = 1 и если существуют t2.menu = 1", если у вас таблицы связаны, то зачем два этих условия, одного должно быть достаточно? Если не сложно покажите запрос, возможно, вам стоит обратиться не к прямому объединению, а к объединению таблицы с результирующей таблицей подзапроса к этой таблице (т.е. переместить WHERE-условие в подзапрос). | |
|
|
|