0
2つのサブクエリなしでこの単純なことを実行する方法はありますか?MySQL GROUP BYフィールドの不一致
これが私の基本的なデータである:
SELECT order_detail_id, product_id, MAX(paid_price) AS max_price, order_id
FROM t_order_details
WHERE order_id = 7 OR order_id = 8
GROUP BY order_id
私はorder_detail_id選択し、データがないと思われるため8に順序7と同じことで、最高価格でPRODUCT_IDたいです一致行
SELECT order_detail_id, product_id, MAX(paid_price) AS max_price, order_id
FROM t_order_details
WHERE order_id = 7 OR order_id = 8
GROUP BY order_id
これは2つのサブクエリを使用した私のソリューションです。
SELECT order_detail_id, product_id, paid_price, order_id
FROM t_order_details
WHERE paid_price IN (
SELECT MAX(paid_price) AS max_price
FROM t_order_details
WHERE order_id = 7 OR order_id = 8
GROUP BY order_id)
AND order_id IN (
SELECT order_id
FROM t_order_details
WHERE order_id = 7 OR order_id = 8
GROUP BY order_id)
GROUP BY order_id
しかし、私は
作品!これは私よりも優れています。しかし、サブクエリを使わなくてもそれができることを願っています。非常に一般的な問題ですので、 –
@AndreyKudriavtsev **編集**の部分チェックが動作するかどうかを確認してください。 – Blank