2016-05-05 5 views
1

私は正しい答えを得ることはできませんが、私は多くのテクニックを試しました。 たとえば、国名とIDを持つテーブルがあります。 ID3を使わなかった国だけに戻したいと思っています.ID2や1などで言及されていても、私が望まないものが表示されるからです。SQL値が存在しない単一のテーブルに結合する

SELECT DISTINCT test.country, test.id 
FROM test 
WHERE test.id LIKE 2 
AND test.id NOT IN (SELECT DISTINCT test.id FROM test WHERE test.id LIKE 3); 
+0

サンプルテーブルと希望の結果を投稿した場合、探しているものを理解するのがずっと簡単です –

+0

たとえば、テーブルにはポーランド、ロシア、ドイツのID 1,2,3 。しかし、テーブルは次のようになります。それは、ID 3 – user240179

+0

を有しているにもかかわらず ポーランド1 ロシア2 ロシア3 ドイツ2 したがって、この場合には、それはまだあなたが... IDをテストしていないではないで – xQbert

答えて

0
SELECT DISTINCT c1.name 
FROM countries c1 
WHERE NOT EXISTS (
    SELECT 1 
    FROM countries c2 
    WHERE c1.name = c2.name 
    AND c2.id = 3 
) 
+0

回答ありがとう、よく働いた:) – user240179

1

私は今、私はあなたの質問を理解して確信している、しかし、あなたはIDが3ではないの異なる国々をしたい場合、あなたはこの必要があります:あなたは国を排除したい

select distinct c.name from Countries 
where c.id <> 3 
+0

これを国にしたい私にロシアが表示されますそれはまだ表示されますので、ID 2と同じ国があるので、間違った情報を表示する助けていない – user240179

1

をIDの自体は、3のIDを持たない...

SELECT Distinct t.country, T.ID 
FROM test t 
where not exists 
    (Select 1 from test t2 where t2.country = t.country and ID = 3) 

それとも

私はあなたの状況は似ていると思います
SELECT DISTINCT test.country, test.id 
FROM test 
WHERE test.country NOT IN (SELECT DISTINCT test.country FROM test WHERE test.id =3); 
1

、あなたのよう帰着する必要が

Table Data

Expected Result Data

は、スクリプトは次のようになり、

SELECT DISTINCT t1.country 
 
FROM test t1 
 
WHERE NOT EXISTS (
 
    SELECT 1 
 
    FROM test t2 
 
    WHERE t1.country = t2.country 
 
    AND t2.id = 3 
 
)

関連する問題