假设您有以下两个 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 中的行。
第二个问题是,如果实际上有一种简单的方法可以通过仅返回具有最大描述的行来查询没有 t2 的 t1。我尝试在 SQL Server 中查看它,但只能找到第一个标识符,这不适用于这种“精彩”的 sql 实现......