SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 11.03.2016 20:31:28

qwerty
Участник
Зарегистрирован: 24.04.2009
Сообщений: 8

Запрос с объединением

есть таблица PROBLEMS
id   contr   text   status

id порядковый номер
contr - ид контрагента, по которому создана задачча
text описание проблемы
status  Статус 1 создана, 2- решено, 3 -проверено/закрыто

Задача:
из этой таблицы вывести 3 последние проблемы + все открытые задачи(со статусом 1).

например.
Таблица
1  Автоваз  Ремонт  2
2  Автоваз  ТО        1
3  Автоваз  Замена масла 3
4  Автоваз  Ремонт  2
5  Автоваз  ТО        1
6  Автоваз  Замена масла 3

Должны выбраться строки 6 5 4 (как последние) и 2 (как нерешенная). Результат:
6  Автоваз  Замена масла 3
5  Автоваз  ТО        1
4  Автоваз  Ремонт  2
2  Автоваз  ТО        1


КАК??? я и юнионом пробовал. никак не получается.

SELECT id,contr,text,status from problems order id DESC Limit 3
union
SELECT id,contr,text,status from problems where status=1 group by 1,2,3,4

по идее вот так бы зашло, но лимит можно применять только к последней строке. Если поменять наоборот, то выведется только 3 строки. Это невозмножно?

Отредактированно qwerty (11.03.2016 20:36:00)

Неактивен

 

#2 11.03.2016 21:12:28

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Запрос с объединением

select * from (SELECT id,contr,text,status from problems order id DESC Limit 3)
union
SELECT id,contr,text,status from problems where status=1

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson