最初のクエリを考えると、次のように記述できるはずです。
SELECT UID
FROM Table1
WHERE EXISTS (SELECT 1
FROM Table2
WHERE SubjectB = SubjectA
)
AND another_column_from_table1 > 10;
クエリの最後に条件を追加するだけで構文エラーが発生することはありません。コメントから、これは構文的に受け入れられているようですが、出力は生成されません。これをデバッグするための明白なテクニックは次のとおりです。
SELECT UID, another_column_from_table1
FROM Table1
WHERE EXISTS (SELECT 1
FROM Table2
WHERE SubjectB = SubjectA
)
これにより、列に値が表示されます。おそらく、追加のフィルター条件を追加すると結果セットが空になるため、この選択の 2 番目の列の値はすべて 10 未満 (または null) になります。
Table1 と Table2 のエントリ間に 1 対 1 の関係がある場合は、代わりに JOIN を使用できます。
SELECT t1.UID
FROM Table1 AS t1
JOIN Table2 AS t2 ON t2.SubjectB = t1.SubjectA
WHERE t1.another_column_from_table1 > 10;
Table1 の各行に対して Table2 に複数の行が存在する可能性がある場合は、DISTINCT を追加する必要があります。
SELECT DISTINCT t1.UID
FROM Table1 AS t1
JOIN Table2 AS t2 ON t2.SubjectB = t1.SubjectA
WHERE t1.another_column_from_table1 > 10;