假设表有order_info_details 订单详情表
字段包含:
大家都知道,订单详情表中,就存的是一个订单号有多个食物id。
那么我们group by order_id后,就只能得到order_id。
但是我们想要得到同一个order_id中的某一条完整的数据。包好所有字段。
那么我们就可以通过下面的sql语句得到。
原理:group by 后查询的字段。只能是group by 后的字段和聚合函数。
那么我们想得到其中的某一条,那么我们可以取得food_id最小的。通过min函数。
SELECT * FROM nm_order_info_details noid
WHERE EXISTS ( SELECT 1 FROM ( SELECT order_id ,MIN(food_id) food_id
FROM nm_order_info_details
GROUP BY order_id
) temp
WHERE noid.food_id = temp.food_id AND noid.order_id = temp.order_id
)