次の 2 つの SQL Server テーブルがあるとします。
t1:
|----------------------------------------------|
|name | day_planed | day_canceled | discription|
|----------------------------------------------|
|alpha| 2015-11-02 | 2015-11-01 | some |
|alpha| 2015-11-02 | 2015-10-30 | text |
|beta | 2015-11-02 | 2015-11-01 | here |
|----------------------------------------------|
t2:
|----------------------------------------------|
|name | day_planed | day_canceled | discription|
|----------------------------------------------|
|alpha| 2015-11-02 | 2015-10-30 | text |
|----------------------------------------------|
t1 のクエリでは、t2 以外のすべてのエントリが必要です。私はすでに似たようなことを試しました
SELECT *
FROM t1 AS A
LEFT JOIN t2 as B ON (A.name = B.name
AND A.day_planed = B.day_planed
AND A.day_canceled != B.day_canceled)
残念ながら、t1のクエリでt2から行を除外しない理由がわかりません。
2 番目の質問は、最大の説明を含む行を返すだけで、t2 なしで t1 のクエリを作成する簡単な方法が実際にある場合です。SQL Serverで調べてみましたが、最初の識別子しか見つかりませんでした。これは、SQLのこの「素晴らしい」実装では機能しません...