我现在正在开发一个laravel项目,我必须处理一些sql的东西。
因为我想让mysql保持严格模式,所以我必须用一个没有“groupby”的查询替换下面的查询。我读过,我可以通过连接达到这个目的,但我真的不知道如何在这个例子中做到这一点。
首先,这里是我的示例表“水果”。请不要介意冗余,我得到的数据如下:
fruitName | fruitModel
--------------------------
Banana (Nr 1) | Banana
Banana (Nr 2) | Banana
Banana (Nr 3) | Banana
Apple (Nr 1) | Apple
Apple (Nr 2) | Apple
Strawberry | Strawberry
Banana (Nr 4) | Banana
我想得到下表:
fruitName | fruitModel
--------------------------
Banana (Nr 1) | Banana
Apple (Nr 1) | Apple
Strawberry | Strawberry
所以对于每个水果模型,我都想有一个水果名。这与我的名字无关。这样的结果也可以:
fruitName | fruitModel
--------------------------
Banana (Nr 3) | Banana
Apple (Nr 2) | Apple
Strawberry | Strawberry
我有一个查询,可以很好地实现这一点,但是我必须构建一个没有“groupby”部分的查询,因为在严格模式下,每个选中的列都必须显示在“groupby”中。以下是我当前的查询:
SELECT fruitModel, fruitName FROM fruits GROUP BY fruitModel
有没有人知道如何用一些join的东西来代替“groupby”部分?谢谢您。
1条答案
按热度按时间whitzsjs1#
GROUP BY
很好,因为您确实需要每个水果的聚合模型。只是你忘了对水果名称应用聚合函数。使用ANY_VALUE
为此: