6

誰かが私が抱えているこの困難を手伝ってくれませんか?

一部のデータが有効かどうかを確認したいので、検証のごく一部はエンティティの整合性で構成され、主キーが一意であることを確認します

SELECT order_id, COUNT(order_id)
FROM temp_order
GROUP BY order_id
HAVING ( COUNT(order_id) > 1 )

この場合、order_idが主キーです。このクエリは正常に機能します。

問題:

これで、order_id、product_idの2つのフィールドで構成される複合主キーを持つ別のテーブルtemp_orditemができました。

主キーが一意であるかどうか(つまり、2つのフィールドの組み合わせ)を確認するにはどうすればよいですか?次のことはできますか?

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)
4

2 に答える 2

12

私はこれを書くでしょう:

SELECT order_id, product_id, COUNT(*) AS x
FROM temp_order
GROUP BY order_id, product_id
HAVING x > 1
于 2012-04-30T21:53:50.137 に答える
12

これはあなたが必要とするクエリです:

select order_id, product_id, count(*)
from temp_order
group by order_id, product_id
having count(*) > 1
于 2012-04-30T21:53:55.333 に答える