SQL查询与其他选择不同

时间:2012-11-01 18:49:17

标签: mysql distinct

我需要在MySQL中执行一个返回product_id的不同值的查询,但我还需要选择并返回该特定表中的'id'字段。

此查询将返回不带id的不同product_id:

SELECT DISTINCT product_id FROM orders_cart

此查询将在两个字段上使用distinct,我想在product_id上使用它并查看id

SELECT DISTINCT id, product_id FROM orders_cart

在pgsql上做起来很容易,但我不知道如何在mysql上做这个。

2 个答案:

答案 0 :(得分:1)

您的查询定义不明确:请考虑此表

id   product_id
1     1
2     2
3     1
4     2

您的查询结果应该是什么?如果你的意思是

id        product_id
1 or 3     1
2 or 4     2

你处于非确定性查询之中。

你能做的是

SELECT MIN(id), product_id FROM orders_cart GROUP BY product_id

确定性地产生

id   product_id
1     1
2     2

答案 1 :(得分:0)

这是我的最终代码: 这个问题最重要的部分是第1,2和4行:) GROUP BY做了诀窍:))

SELECT orders_cart.id, product_id, order_id 
FROM orders_cart 
LEFT JOIN orders_order ON orders_cart.order_id=orders_order.id
WHERE orders_order.status='Wysłano'
GROUP BY orders_cart.product_id