SQL SELECT GROUP BY并加入具有特定值的行

问题描述 投票:0回答:1

我有两张桌子:

tbl_car

id_c | name car
1    | VW
2    | Audi
3    | Ferrari

tbl_auto_accessorize

id_a | id_c | fuel | gpl | abs
1    |  1   | 0    |  1  | 0   
2    |  1   | 1    |  0  | 1
3    |  2   | 0    |  1  | 1
4    |  2   | 1    |  0  | 1
5    |  3   | 0    |  1  | 0

我有这个SQL:

SELECT id_a,id_c,abs
FROM tbl_car LEFT JOIN
     tbl_auto_accessorize
     ON tbl_accessorize.id_c = tbl_auto.id_c
GROUP BY id_c

列abs中的返回值为0,因为第一行为0但是相同的id_c具有另一行1.我需要一个等于1的结果,因为至少有一个是同一辆汽车的1。

结果:

id_c | abs
1    | 1
2    | 1
3    | 0
sql select join group-by sql-order-by
1个回答
1
投票

我想你可能想要max()

SELECT c.id_c, MAX(aa.abs)
FROM tbl_car c LEFT JOIN
     tbl_auto_accessorize aa
     ON aa.id_c = c.id_c
GROUP BY c.id_c;

通常,聚合查询中的所有列都应该位于GROUP BY中,或者是聚合函数的参数。这就是我删除id_a的原因。

© www.soinside.com 2019 - 2024. All rights reserved.