LEFT / RIGHT JOIN中的子查询过滤器

肺动脉高压

我尝试了以下查询以获取TAB1中丢失的记录

SELECT *
FROM TAB1 T1 
RIGHT JOIN TAB2 T2 ON T1.MemNo = T2.MemID
WHERE EXISTS ( SELECT 1
               FROM TAB3 x 
               WHERE x.Col2 =  T2.SVID
               AND x.Col1 = T1.SID )
AND T1.MemNo IS NULL

但这没有任何结果

样本数据;

TAB1

MemNo   SID

116537  S110
116537  D011
575777  D012
214438  S110
434611  D114
214438  D011
208368  D012
208368  S110

TAB2

MemID   SVID

116537  110
116537  11
214438  11
434675  114
214438  110
575788  12
208368  12
208368  110


TAB3

Col1    Col2

D011    11
S110    110
D114    114
D012    12

我应该如何更改查询以获得预期的结果。如下所述

TAB2

MemID   SVID

575788  12
434675  114

在INNER JOIN的情况下可以正常工作

谢谢

戈登·利诺夫(Gordon Linoff)

这是您写的查询,以便我更好地理解:

select *
from tab2 t2 left outer join
     tab1 t1
     on t1.MemNo = t2.MemId
where exists (SELECT 1
              FROM TAB3 x 
              WHERE x.Col2 =  T2.SVID AND x.Col1 = T1.SID ) and
      T1.MemNo IS NULL

t1.MemNo仅当外部联接未能在该表中找到匹配项时该列才为NULL(因为它是联接条件的一部分)。如果是NULL这种情况T1.SID,那么该exists子句将找不到任何行,因为其中一个AND条件的计算结果为NULL

如果要处理这种情况,那么exists子句中也需要逻辑

select *
from tab2 t2 left outer join
     tab1 t1
     on t1.MemNo = t2.MemId
where exists (SELECT 1
              FROM TAB3 x 
              WHERE x.Col2 =  T2.SVID AND (x.Col1 = T1.SID or t1.SID is null)) and
      T1.MemNo IS NULL;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何修改LEFT OUTER JOIN为RIGHT边桌添加过滤器

来自分类Dev

如何修改LEFT OUTER JOIN来为RIGHT边桌添加过滤器

来自分类Dev

使用片段的ecto“ left IN right”查询

来自分类Dev

PySpark SQL中的LEFT和RIGHT函数

来自分类Dev

如何在 hive 查询中实现 LEFT/RIGHT OUTER JOIN 来替换 NOT IN?

来自分类Dev

如何编写RIGHT OUTER JOIN和LEFT OUTER JOIN的组合

来自分类Dev

SQL-如何使用WHERE代替LEFT / RIGHT JOIN?

来自分类Dev

将div分为html中的left,right,bottom

来自分类Dev

SQL中的LEFT和Right连接的原因是什么

来自分类Dev

div元素中的float:left和float:right意外对齐

来自分类Dev

JavaFX中的KeyCodeCombination Control + LEFT或Ctrl + RIGHT键

来自分类Dev

编写没有 UNION 或任何 JOIN (FULL/LEFT/RIGHT) 的 SQL 查询

来自分类Dev

在表达式left()= right()中,为什么right()首先被排序?

来自分类Dev

在K&R的qsort()实现中swap(v,left,(left + right)/ 2)的目的是什么?

来自分类Dev

蜂巢:LEFT JOIN与JOIN在ON子句中使用过滤器给出不同的结果

来自分类Dev

使用LEFT OUTER JOIN或Anti-join的BigQuery过滤器

来自分类Dev

Translate TextView from Right to Left

来自分类Dev

Slide left than right direction

来自分类Dev

模拟FULL OUTER JOIN:LEFT+RIGHT JOIN的UNION vs cross join的性能

来自分类Dev

将INNER JOIN放在LEFT / RIGHT JOINS之前是否有性能差异?的MySQL

来自分类Dev

Postgres中的LEFT JOIN查询

来自分类Dev

在单个 mysql 查询中可以有效地使用内连接与 RIGHT 或 LEFT Join 一起使用吗

来自分类Dev

Django如何在LEFT JOIN中传递子查询

来自分类Dev

如果left包含null,right包含值,则在sql中向左移动单元格

来自分类Dev

将emacs乳胶中的所有类型的括号转换为\ left \ right形式

来自分类Dev

Spray-完全基于两种方式中基于Left-Right的HTTP代码

来自分类Dev

如何从Dart(Dartz)中的任一类型轻松提取Left或Right

来自分类Dev

当组件的分配为“ RIGHT_TO_LEFT”时,字符串连接中的错误行为

来自分类Dev

在ListView中可以使用LEFT,RIGHT SWIPE和setOnItemClickListener,setOnItemLongClickListener吗?

Related 相关文章

  1. 1

    如何修改LEFT OUTER JOIN为RIGHT边桌添加过滤器

  2. 2

    如何修改LEFT OUTER JOIN来为RIGHT边桌添加过滤器

  3. 3

    使用片段的ecto“ left IN right”查询

  4. 4

    PySpark SQL中的LEFT和RIGHT函数

  5. 5

    如何在 hive 查询中实现 LEFT/RIGHT OUTER JOIN 来替换 NOT IN?

  6. 6

    如何编写RIGHT OUTER JOIN和LEFT OUTER JOIN的组合

  7. 7

    SQL-如何使用WHERE代替LEFT / RIGHT JOIN?

  8. 8

    将div分为html中的left,right,bottom

  9. 9

    SQL中的LEFT和Right连接的原因是什么

  10. 10

    div元素中的float:left和float:right意外对齐

  11. 11

    JavaFX中的KeyCodeCombination Control + LEFT或Ctrl + RIGHT键

  12. 12

    编写没有 UNION 或任何 JOIN (FULL/LEFT/RIGHT) 的 SQL 查询

  13. 13

    在表达式left()= right()中,为什么right()首先被排序?

  14. 14

    在K&R的qsort()实现中swap(v,left,(left + right)/ 2)的目的是什么?

  15. 15

    蜂巢:LEFT JOIN与JOIN在ON子句中使用过滤器给出不同的结果

  16. 16

    使用LEFT OUTER JOIN或Anti-join的BigQuery过滤器

  17. 17

    Translate TextView from Right to Left

  18. 18

    Slide left than right direction

  19. 19

    模拟FULL OUTER JOIN:LEFT+RIGHT JOIN的UNION vs cross join的性能

  20. 20

    将INNER JOIN放在LEFT / RIGHT JOINS之前是否有性能差异?的MySQL

  21. 21

    Postgres中的LEFT JOIN查询

  22. 22

    在单个 mysql 查询中可以有效地使用内连接与 RIGHT 或 LEFT Join 一起使用吗

  23. 23

    Django如何在LEFT JOIN中传递子查询

  24. 24

    如果left包含null,right包含值,则在sql中向左移动单元格

  25. 25

    将emacs乳胶中的所有类型的括号转换为\ left \ right形式

  26. 26

    Spray-完全基于两种方式中基于Left-Right的HTTP代码

  27. 27

    如何从Dart(Dartz)中的任一类型轻松提取Left或Right

  28. 28

    当组件的分配为“ RIGHT_TO_LEFT”时,字符串连接中的错误行为

  29. 29

    在ListView中可以使用LEFT,RIGHT SWIPE和setOnItemClickListener,setOnItemLongClickListener吗?

热门标签

归档