【发布时间】:2014-01-22 15:09:56
【问题描述】:
我有 2 个表,例如 A 和 B 包含一些数据
TABLE A TABLE B
+----+-------+ +----+------+--------+
| id | title | | id | a_id | status |
+----+-------+ +----+------+--------+
| 1 | apple | | 1 | 1 | 0 |
| 2 | eggs | | 2 | 1 | 1 |
+----+-------+ | 3 | 1 | 2 |
| 4 | 1 | 3 |
| 5 | 1 | 0 |
| 6 | 1 | 1 |
| 7 | 2 | 0 |
| 8 | 2 | 1 |
| 9 | 2 | 2 |
| 10 | 1 | 0 |
| 11 | 1 | 3 |
+----+------+--------+
我想从表 A 中选择水果并加入表 B 并获取最新状态记录(按 ID)。
我的表格包含大约 10k 个水果和 100+k 个状态。
所以结果看起来像
+------+---------+------+--------+----------+
| a.id | a.title | b.id | b.a_id | b.status |
+------+---------+------+--------+----------+
| 1 | apple | 11 | 1 | 3 |
| 2 | eggs | 9 | 2 | 2 |
+------+---------+------+--------+----------+
我可以像这样使用 group by sql 脚本来做到这一点
SELECT * FROM a LEFT JOIN b ON a.id = b.a_id GROUP_BY a.id
但它从表 B 中获取第一项,因此结果不正确。
【问题讨论】:
标签: mysql sql group-by subquery