Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
05.03.2020, 11:32
|
|||
---|---|---|---|
Нужна помощь с подзапросом |
|||
#18+
Добрый день. Мне необходимо вывести дома, которые имеют только записи со статусами 0 (исторические записи). Таких записей у одного дома может быть несколько и только одна запись со статусом либо 1, либо 2, либо 3. Например: Вариант 1. 1. дом 1 статус 0 2. дом 1 статус 0 3. дом 1 статус 1 Вариант 2. 1. дом 2 статус 0 2. дом 2 статус 2 Вариант 3. 1. дом 3 статус 0 2. дом 3 статус 0 3. дом 3 статус 0 В запросе должны выдаваться только такие дома как в варианте 3. Строк с нулевыми статусами может быть и одна, и две, и три, и тд. Попробовала вот так: select * from house h where h.orponid in (select orponid from house where livestatus = 0 and livestatus not in (1,2,3) group by orponid having max(livestatus) = 0 ) Но выдает почти все подряд. Пока вообще плохо с sql, только разбираюсь. Подскажите, пожалуйста, где ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 11:44
|
|||
---|---|---|---|
Нужна помощь с подзапросом |
|||
#18+
Разобралась. Вот так заработало: where 1 = 1 and h.orponid in (select orponid from house group by orponid having max(livestatus) = 0 ) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 11:47
|
|||
---|---|---|---|
Нужна помощь с подзапросом |
|||
#18+
WHERE .. IN () - почти всегда тормоза. Применимо разве что на совсем небольших таблицах. Лучше переписать на JOIN или [NOT] EXISTS. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 12:22
|
|||
---|---|---|---|
|
|||
Нужна помощь с подзапросом |
|||
#18+
*Ann*, если уж с GROUP то в данном запросе можно красиво использовать GROUP BY orponid HAVING SUM(livestatus )=0 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 12:34
|
|||
---|---|---|---|
|
|||
Нужна помощь с подзапросом |
|||
#18+
Alex_Ustinov можно красиво использовать HAVING SUM(livestatus )=0 А чем SUM(livestatus )=0 лучше и красивее MAX(livestatus )=0? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=47&mobile=1&tid=1828717]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 133ms |
0 / 0 |