2015-10-26 1 views
1

Попытка получить все строки, где UserID = 'я'Простые SQL Union 2 запросов на одной и той же таблицы

Затем 2 новые строки, где USERID <> 'я'

Предметы:

 
Userid time 
other2 11 
other3 10 
me  10 
me  8 
other1 8 
other3 7 
me  6 

вернется

 
Userid time 
me  10 
me   8 
me   6 
other2 11 
other3 10 

результаты не должны б е в любом порядке

(SELECT * FROM Items WHERE userid='me') 
UNION ALL 
(SELECT * FROM Items WHERE userid<>'me' 
ORDER BY time DESC LIMIT 2) 

Это только выходы 2 строки

+0

SQL-Server или MySQL? –

+3

Ваш запрос выглядит правильно. Использование 'limit' предполагает MySQL, поэтому я удаляю тег SQL Server. –

+1

Я согласен с @GordonLinoff. Смотрите это [скрипка] (http://sqlfiddle.com/#!9/ca405/1/0). –

ответ

2

SQL, был правильным, как показано выше

(SELECT * FROM Items WHERE userid='me') 
UNION ALL 
(SELECT * FROM Items WHERE userid<>'me' 
ORDER BY time DESC LIMIT 2) 

Союза Все сцепляет два запроса, и круглые скобки позволяют различным Где/ЗАКАЗ BY/LIMIT.
Демонстрация здесь: http://sqlfiddle.com/#!9/ca405/1/0

Смежные вопросы