1

次のようなテーブル構造になりました

--------------------------------
idprocessIdnewId値
--------------------------------
1 1 1 a
2 1 2 b
3 1 4 c
4 2 5 d
--------------------------------

------------------------
id processId mapnewId
------------------------
1 1 1
2 1 2
------------------------

IDがマップされているテーブルから値「 c」(つまり、2番目のテーブルの「1 」にマップされていない値を取得する必要がある)を取得するにはどうすればよいですか。

4

2 に答える 2

1

これが単一レコードの答えです

Select 
    t1.processId,
    t1.newId,
    t1.value,
    t2.processId,
    t2.mapnewId
FROM  t1
LEFT JOIN t2 
ON t1.processId = t2.processId and t1.newId =  t2.mapnewId
where t1.processId = 1 and t2.processId is null
于 2012-10-12T06:23:15.537 に答える
0

私の理解によると、2番目のテーブルにない行を返すクエリを探しています。それで問題ない場合は、「Except」操作が同じように役立ちます。

SQL EXCEPT句/演算子は、2つのSELECTステートメントを結合するために使用され、2番目のSELECTステートメントによって返されない最初のSELECTステートメントからの行を返します。これは、EXCEPTが2番目のSELECTステートメントで使用できない行のみを返すことを意味します。

参照してください: http ://www.tutorialspoint.com/sql/sql-except-clause.htm

于 2012-10-12T05:32:02.940 に答える