我正在研究子查询。
无论我如何努力,得到的输出都不是我所需要的,或者是空的。
--orders表存储用户订单,users表存储客户本身。
-- 获取有关订单最贵的买家的信息。
-- 可能有多个订单具有最大值,这意味着可能有多个买家。
-- 只计算已完成的订单。
-- 按客户 ID 对数据进行排序。
**orders**
ID | 用户身份 | 日期 | 数量 | 地位 |
---|---|---|---|---|
1 | 3 | 2014-01-23 17:04:04 | 4500 | 完全的 |
2 | 1 | 2014-03-12 12:12:43 | 700 | 完全的 |
3 | 10 | 2014-12-31 08:53:25 | 1240 | 新的 |
4 | 7 | 2015-01-04 18:23:09 | 500 | 完全的 |
5 | 1 | 2015-01-04 18:25:27 | 8700 | 取消 |
6 | 4 | 2015-01-12 09:23:14 | 1350 | 完全的 |
7 | 10 | 2015-01-14 17:16:39 | 600 | 新的 |
8 | 1 | 2015-02-01 13:32:17 | 680 | 完全的 |
9 | 3 | 2014-02-16 14:44:05 | 1400 | 完全的 |
10 | 5 | 2015-02-28 02:00:47 | 4300 | 取消 |
十一 | 10 | 2015-03-12 08:30:23 | 8000 | 完全的 |
12 | 2 | 2015-04-01 13:04:47 | 980 | 完全的 |
13 | 2 | 2015-04-14 23:21:25 | 1600 | 完全的 |
14 | 3 | 2015-04-15 04:17:11 | 8000 | 完全的 |
15 | 7 | 2015-04-16 08:21:37 | 8000 | 新的 |
**users**
ID | 名 | 姓 | 年龄 |
---|---|---|---|
1 | 维罗妮卡 | 彼得罗娃 | 20 |
2 | 斯韦特兰娜 | 伊万诺娃 | 17 号 |
3 | 埃琳娜 | 阿布拉莫娃 | 18 |
4 | 瓦西里萨 | 卡茨 | 15 |
5 | 阿廖娜 | 索罗金娜 | 22 |
6 | 阿廖娜 | 费德科娃 | 28 |
7 | 藤本植物 | 索罗金娜 | 21 |
8 | 卡琳娜 | 白色的 | 三十 |
9 | 阿纳斯塔西娅 | 戴奇曼 | 16 |
10 | 朱莉娅 | 费多罗夫 | 25 |
因此,应该只有 id 3 和 10,但我还有一个状态为“new”的用户 7,可以使用。我不明白为什么?怎么修?这就是我所做的
SELECT *
FROM users
WHERE id IN (
SELECT user_id
FROM orders
WHERE amount = (
SELECT MAX(amount)
FROM orders
WHERE status = 'completed'
)
)
ORDER BY id