2016-12-14 19 views
0

私は以下の質問を書く方法を知らない。特定の値の組み合わせを見つける

私のテーブルには、私は両方のパラメータで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

+1

これは再帰クエリではない点に注意してください。ここではいくつかあります。それに応じてタイトルを変更してください。 –

+0

ありがとうございますタイトルを提案してください、必要があります – noobProgrammer

+0

あなたの質問は、実際のテーブル定義( 'CREATE TABLE'ステートメント)とあなたのPostgresバージョンを提供する必要があります。 –

答えて

0

試してみてください。

SELECT col1 
FROM mytable 
WHERE col2 IN (6, 7) 
GROUP BY col1 
HAVING COUNT(DISTINCT col2) = 2 
+0

(私はDISTINCTが冗長であることを願っています) – Strawberry

+0

固有の制約は知られていないので、DISTINCTが必要です。 – jarlh

1

これが最速のソリューションの中で、おそらくです:それはだよう

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を追加します。

リレーショナル除算を実装する多くの方法があります。

関連する問題