誰かがここで既存の質問に私を向けることができれば、それは素晴らしいことです. このケースを見つけるのに苦労していることがわかりました。
それをいじるためにSQL Fiddleをチェックしてください。SO検索機能のために、スキーマとフィドルからの質問を次に示します。
私の users テーブルには、ユーザーが割り当てられている国に一意の制約があります (国ごとに 1 人のユーザーまで)。ただし、彼らは好きな場所に住むことができます。
質問を開始
割り当てられた国と住所がレコード間で 1 回だけ表示されるユーザーのみを返したいと考えています。この場合はレコード 4 で、列間の重複も望ましくなく、行間の重複もありません。どのように?!:)
CREATE TABLE users
(`id` int,
`country` varchar(255),
`domicile` varchar(255), UNIQUE(country)
)
;
INSERT INTO users
(`id`, `country`, `domicile`)
VALUES
# Duplicate across column and row
(1, "usa", "usa"),
(2, "canada", "usa"),
# Duplicate only across columns or no duplication
(3, "mexico", "mexico"),
(4, "uganda", "australia"),
# Duplicate only across rows
(5, "germany", "portugal"),
(6, "france", "portugal"),
(7, "spain", "portugal")
;
適切な設計によりこれが容易になることは、当面の間取っておきます。配られた手札で仕事をしようとしているだけです。;)