Подзапрос выдаёт не совсем то, что нужно

Изучаю подзапросы.
Как ни пытался, на выходе получаю не совсем то, что мне нужно, либо пустоту.

-- В таблице orders хранятся заказы пользователей, а в users непосредственно сами покупатели.
-- Получите информацию о покупателях, которые сделали самый дорогой заказ.
-- Заказов с максимальной стоимостью может быть несколько, а значит и покупателей может быть несколько.
-- Учитывайте только завершенные заказы.
-- Данные отсортируйте по id покупателей.

                                        **orders**  
id user_id date amount status
1 3 2014-01-23 17:04:04 4500 completed
2 1 2014-03-12 12:12:43 700 completed
3 10 2014-12-31 08:53:25 1240 new
4 7 2015-01-04 18:23:09 500 completed
5 1 2015-01-04 18:25:27 8700 cancelled
6 4 2015-01-12 09:23:14 1350 completed
7 10 2015-01-14 17:16:39 600 new
8 1 2015-02-01 13:32:17 680 completed
9 3 2014-02-16 14:44:05 1400 completed
10 5 2015-02-28 02:00:47 4300 cancelled
11 10 2015-03-12 08:30:23 8000 completed
12 2 2015-04-01 13:04:47 980 completed
13 2 2015-04-14 23:21:25 1600 completed
14 3 2015-04-15 04:17:11 8000 completed
15 7 2015-04-16 08:21:37 8000 new
                         **users**  
id first_name last_name age
1 Вероника Петрова 20
2 Светлана Иванова 17
3 Елена Абрамова 18
4 Василиса Кац 15
5 Алёна Сорокина 22
6 Алёна Федькова 28
7 Лиана Сорокина 21
8 Карина Белая 30
9 Анастасия Дейчман 16
10 Юлия Фёдорова 25

В результате должны быть только id 3 и 10, но у меня выстреливает ещё и юзер под 7 номером со статусом "new". Не могу понять, почему? Как исправить? Вот, что я делал

SELECT *
FROM users
WHERE id IN (
    SELECT user_id
    FROM orders
    WHERE amount = (
        SELECT MAX(amount)
        FROM orders
        WHERE status = 'completed'
        )
)
ORDER BY id   

Ответы (1 шт):

Автор решения: 61ack63rry

Всё оказалось намного проще. Всего-то в выборке по user_id также нужно было указать status = 'completed':

SELECT *   
FROM users  
WHERE id IN (  
    SELECT user_id  
    FROM orders  
    WHERE status = 'completed' AND amount IN (  
        SELECT MAX(amount)  
        FROM orders  
        WHERE status = 'completed'  
        )  
)  
ORDER BY id

На выходе получаю юзеров 3 и 7.

→ Ссылка