有人可以帮助我解决这个困难吗?
我想检查一些数据是否有效,因此验证的一小部分包含实体完整性,我检查我的主键是否唯一
SELECT order_id, COUNT(order_id)
FROM temp_order
GROUP BY order_id
HAVING ( COUNT(order_id) > 1 )
在这种情况下,order_id是主键。此查询工作正常。
问题:
我现在有另一个表temp_orditem,它有一个由2个字段组成的复合主键:order_id,product_id。
如何检查主键是否唯一(即两个字段组合在一起)?我可以这样做吗?
SELECT order_id, product_id, COUNT(order_id), COUNT(product_id)
FROM temp_order
GROUP BY order_id, product_id
HAVING ( COUNT(order_id) > 1 AND COUNT(product_id)>1)
答案 0 :(得分:11)
我会写这个:
SELECT order_id, product_id, COUNT(*) AS x
FROM temp_order
GROUP BY order_id, product_id
HAVING x > 1
答案 1 :(得分:11)
这是您需要的查询:
select order_id, product_id, count(*)
from temp_order
group by order_id, product_id
having count(*) > 1