2017-02-08 8 views
-1

私は知っていますが、この質問のタイトルは魅力的ではありませんが、1つの文で説明するのはかなり難しいので、ここでは2つのテーブル。特定の列の値に対してIDが値を持たない値を取得する

Table 1 

ID other_id 
1  1 
2  1 
3  2 

Table 2 
ID parent_id attribute_id value 
54 1   125    jiazdjdaz 
55 1   367    5 
58 2   125    zdvgbdajz 
59 2   367    4 
71 3   125    hagvbadd 

t2.parent_idは、属性367

どのようにするために、テーブルT2で値を持たないので、私は、 "other_id" 2を取得することができるようにしたいt1.ID

に等しく、それは簡単にできますか?

+0

簡単に試すことができます。そして私たちはそれについて簡単にコメントすることができます。 – Strawberry

+0

私は人々がどれほど簡単に嫌な思いをしたか忘れてしまった。私がそれをやる方法やウェブで何を探すべきかを知っていたら、私はここで質問していると思いますか? –

+0

もう少し詳しいことを教えてください。 "属性" 367 "のテーブルT2に値がないので、" other_id "2を取得できるようにしたい。ちょっと混乱した音。 –

答えて

2

存在定量化、存在のテストとして知られています。 SQLでは、EXISTSを使用します。

select other_id from T1 
where not exists ( 
    select 1 from T2 
    where T1.ID = T2.parent_id 
    and attribute_id = 367 
) 

複数の方法があります。外部結合を使用するWeb上のソリューションも表示され、内部テーブルのNULLをテストします。 DBMSに依存するサブクエリのような相関関係が遅いという主張を見つけるでしょう。うまくいけば、これは少なくともあなたに出発点を与えます。

+0

私は以前はどこにも存在しませんでした。洞察のおかげで、それは私が必要としていたものです。今私は適切なクエリを構築することができます。 –

関連する問題