Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Выборка значений одного поля одной таблицы при двух условиях
|
|||
|---|---|---|---|
|
#18+
Есть два запроса к одной таблице, отличающихся одним условием: Код: sql 1. Код: sql 1. Возможно ли их так объединить, чтобы получить такой результат в одном запросе, схематично: Код: sql 1. - f3, f4 одинаковы для обоих выборок, - f3,f4,f12 для условия (f2=10 AND f5=0) всегда существует, но для условия (f2=10 AND f5=1) может отсутствовать, тогда t2.f12 должно быть NULL. Помогите, пожалуйста, с запросом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 11:55 |
|
||
|
Выборка значений одного поля одной таблицы при двух условиях
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. блин, учи SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 13:07 |
|
||
|
Выборка значений одного поля одной таблицы при двух условиях
|
|||
|---|---|---|---|
|
#18+
LiYing, Задача очень неопределенная. Возможно, нужно так: Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 13:10 |
|
||
|
Выборка значений одного поля одной таблицы при двух условиях
|
|||
|---|---|---|---|
|
#18+
miksoft, Спасибо за помощь! Видимо, с описанием задачи намудрил все же, т.к. Ваш запрос не дает результата. Но я решил самостоятельно так: Код: sql 1. 2. 3. 4. 5. 6. 7. Выдает то, что надо. Но, может, эту конструкцию можно упростить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 13:22 |
|
||
|
Выборка значений одного поля одной таблицы при двух условиях
|
|||
|---|---|---|---|
|
#18+
Должно подойти такое непотребство: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Однако оно строится на неподтверждённых предположениях, что группы (f3, f4, f5 IN (0,1)) уникальны. С учётом озвученного также неплохо (и с теми же предположениями) смотрится Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 13:34 |
|
||
|
Выборка значений одного поля одной таблицы при двух условиях
|
|||
|---|---|---|---|
|
#18+
Akina, 1-й вариант запроса отрабатывает как нужно, а вот 2-й прервал после минуты выполнения запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 13:48 |
|
||
|
Выборка значений одного поля одной таблицы при двух условиях
|
|||
|---|---|---|---|
|
#18+
LiYing2-й прервал после минуты выполнения запроса.Индексов подходящих нехватает, небось... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 13:48 |
|
||
|
Выборка значений одного поля одной таблицы при двух условиях
|
|||
|---|---|---|---|
|
#18+
LiYingmiksoft, Спасибо за помощь! Видимо, с описанием задачи намудрил все же, т.к. Ваш запрос не дает результата. Но я решил самостоятельно так: Код: sql 1. 2. 3. 4. 5. 6. 7. Выдает то, что надо. Но, может, эту конструкцию можно упростить? Код: sql 1. 2. 3. Но это уже не то, что спрашивалось в изначальном вопросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2017, 21:24 |
|
||
|
Выборка значений одного поля одной таблицы при двух условиях
|
|||
|---|---|---|---|
|
#18+
miksoft, как всегда, огромное спасибо за помощь! В последнем запросе у Вас вкралась опечатка, правильно так: ... ON t1.f3=t2.f3 AND ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 08:38 |
|
||
|
Выборка значений одного поля одной таблицы при двух условиях
|
|||
|---|---|---|---|
|
#18+
miksoftLiYingmiksoft, Но я решил самостоятельно так: Код: sql 1. 2. 3. 4. 5. 6. 7. Выдает то, что надо. Но, может, эту конструкцию можно упростить? Код: sql 1. 2. 3. Но это уже не то, что спрашивалось в изначальном вопросе. Однако, выяснилось что Ваш запрос все же не идентичен моему. Дело в том, что если мой подзапрос Код: sql 1. возвращает NULL, то в результирующую выборку этот NULL попадает: t1.f3t1.f4t1.f12t2.f12774477ANULL774478BC Ваш запрос не имеет такой возможности, т.е. результат для тех же значений будет такой: t1.f3t1.f4t1.f12t2.f12774478BC Как это можно учесть? Ваш запрос выполняется намного быстрее моего, хотелось бы его использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 10:13 |
|
||
|
Выборка значений одного поля одной таблицы при двух условиях
|
|||
|---|---|---|---|
|
#18+
LiYingКак это можно учесть? Условия по таблице t2 должны быть не во WHERE, а в ON. Иначе LEFT JOIN превращается в INNER. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 10:35 |
|
||
|
Выборка значений одного поля одной таблицы при двух условиях
|
|||
|---|---|---|---|
|
#18+
Akina, Спасибо! В итоге, рабочий быстрый запрос by miksoft :) Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 10:55 |
|
||
|
Выборка значений одного поля одной таблицы при двух условиях
|
|||
|---|---|---|---|
|
#18+
AkinaУсловия по таблице t2 должны быть не во WHERE, а в ON. Иначе LEFT JOIN превращается в INNER.Да, каюсь, это я прошляпил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 11:23 |
|
||
|
Выборка значений одного поля одной таблицы при двух условиях
|
|||
|---|---|---|---|
|
#18+
LiYing , ну собсно это практически второй запрос из 20165939 с дополнительным условием по полю f2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 12:34 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39395874&tid=1830951]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 15ms |
| total: | 170ms |

| 0 / 0 |
