2016-07-07 6 views
0

おはようございます!私はMySQLにはとても慣れていないが、勉強を余儀なくされていることを指摘して、私の質問を序文にしておきましょう。それは言った、私は以下の構造を持つテーブルがある:値が存在しない場合の結果を返します

Table View

私が直面している問題は、498と499のためExtraFieldIDのは、リストされた各IDには存在しないということです。 ExtraFieldID値が見つからないIDを見つける方法を見つけ出す必要がありますが、他の結果は返しません。これをどうやってやることができますか?
これまでのところ、私は解決策を見つけられていないか、解決策を認識するためのスキルをまだ持っていません。
いずれにせよ、それはまだ私にとっては問題です。

私は誰でも提供できるヘルプを感謝します。

+0

さらに質問を明確にすることはできますか?リストされている各Idには存在しないという意味はどうですか? – sgeddes

+0

だから私はあなたが '498と499' ExtraFieldIDを持っていないIDを欲しいと思いますか? – Shank

+0

確かに。この特定の表には、RMMツールの他の表が参照する値が入っています。たとえば、ExtraFieldID 498は、データベースのフロントエンドのチェックボックスを指します。 ID列は、特定のクライアント、クライアントの特定の場所、または監視エージェントがインストールされている特定のコンピュータを参照できます。この投稿の目的のために、ID列は別の表の場所IDを参照します。チェックボックスが一度も変更されていない場合、対応するIDのExtraFieldID列の下にある498の値は存在しません。私はID値が対応する498の値を見失っているのを見つける必要があります。 – jbrantley

答えて

0

これは、ExtraFieldId = 498を持たないすべてのIDを検出します。

SELECT DISTINCT id 
FROM yourTable 
WHERE id NOT IN (
    SELECT id 
    FROM yourTable 
    WHERE ExtraFieldId = 498) 

それとも、自己結合を使用することができます:あなたは、レコード返すようにしたいので

SELECT DISTINCT t1.id 
FROM yourTable AS t1 
LEFT JOIN yourTable AS t2 ON t1.id = t2.id AND t2.ExtraFieldId = 498 
WHERE t2.id IS NULL 
0

あなたはWHERENOT IN句の組み合わせを使用することができます - を確認するために(または単にIDを?) 498499です。

SELECT DISTINCT yourTable.id FROM yourTable WHERE ExtraFieldID NOT IN (498, 499); 

このようなクエリを書くことができます。

関連する問題