======= a 表
id|a|b
1| 2 3|
2| 2 3|
======= b表
id|count|f
1| 2 | 0
1| 3 | 1
2| 2 | 0
2| 3 | 1
===== 结果
id| a |b| count | f
1 2 3 3 1
2 2 3 3 1
根据 a 表的 id 查出 b 表中对应id 最大的count 聚合后返回
结果 包含 a 表 所有字段 和 b表 最大 count 数据 的所有 字段
这个mysql怎么写
======= a 表
id|a|b
1| 2 3|
======= b表
id|count|f
1| 2 | 0
1| 3 | 1
2| 2 | 0
===== 结果
id| a |b| count | f
1 2 3 3 1
根据 a 表的 id 查出 b 表中对应id 最大的count 聚合后返回
结果 包含 a 表 所有字段 和 b表 最大 count 数据 的所有 字段
这个mysql怎么写
两个表通过id
INNER JOIN就行了:
SELECT a.id,a,b,count,f FROM a INNER JOIN b ON a.id = b.id ORDER BY count LIMIT 1;
SELECT a.id,a,b,count,f FROM a INNER JOIN b ON a.id = b.id ORDER BY count desc LIMIT 1;
或
select a.id,a.a,a.b,b.count ,b.f from a a
left join b b on a.id=b.id
where b.count=(select max(count) from b where id=a.id)
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
5 回答3.2k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
建表:
测试用例:
用上面的测试用例,下面的sql可以达到你的要求
结果:
但要是b表多加
结果就不满足了,还得再改进下