私は以下の質問を書く方法を知らない。特定の値の組み合わせを見つける
私のテーブルには、私は両方のパラメータでcol2に存在する明確なcol1のIDを選択する必要が
col1 col2
5 1
5 5
5 6
5 7
4 5
4 8
4 9
4 3
3 3
3 5
です。例えば、 。私は6,7を送信する場合、それは私に送信する必要があります5
私は以下の質問を書く方法を知らない。特定の値の組み合わせを見つける
私のテーブルには、私は両方のパラメータでcol2に存在する明確なcol1のIDを選択する必要が
col1 col2
5 1
5 5
5 6
5 7
4 5
4 8
4 9
4 3
3 3
3 5
です。例えば、 。私は6,7を送信する場合、それは私に送信する必要があります5
試してみてください。
SELECT col1
FROM mytable
WHERE col2 IN (6, 7)
GROUP BY col1
HAVING COUNT(DISTINCT col2) = 2
(私はDISTINCTが冗長であることを願っています) – Strawberry
固有の制約は知られていないので、DISTINCTが必要です。 – jarlh
これが最速のソリューションの中で、おそらくです:それはだよう
SELECT col1 -- already DISTINCT?
FROM tbl t1
JOIN tbl t2 USING (col1)
WHERE t1.col2 = 6
AND t2.col2 = 7;
は、(col1, col2)
上PRIMARY KEY
またはUNIQUE
制約を仮定すると、典型的には実施される。それ以外の場合はDISTINCT
を追加します。
リレーショナル除算を実装する多くの方法があります。
これは再帰クエリではない点に注意してください。ここではいくつかあります。それに応じてタイトルを変更してください。 –
ありがとうございますタイトルを提案してください、必要があります – noobProgrammer
あなたの質問は、実際のテーブル定義( 'CREATE TABLE'ステートメント)とあなたのPostgresバージョンを提供する必要があります。 –