关闭

Oracle -- left join查询结果不是左表的全部数据的解决方法

标签: Oracleleft join
85人阅读 评论(0) 收藏 举报
分类:

left join在实际应用中并不是查出数据都是左边的全部数据,为什么呢?看看自己的解决方法吧大笑

SELECT
       T.xx,
       T1.xx,
       ...
  FROM xxx T
  LEFT JOIN xxx T1
    ON T.ID = T1.ID
 WHERE T.xx = xx
   and T1.xx= xx
本来想查T表所有符合条件的数据,但是结果查出来不是,怎么办呢,不急,现在看看解决方法吧,当然如果不正确的话,欢迎指出哦

1.在left join后增加WHERE条件中关于T1的过滤条件

SELECT
       T.xx,
       T1.xx,
       ...
  FROM xxx T
  LEFT JOIN (SELECT xx,xx2,... FROM xxx WHERE xx= x) T1
    ON T.ID = T1.ID
 WHERE T.xx = xx
2.将WHERE后的条件放在on后面,去掉WHERE条件

SELECT
       T.xx,
       T1.xx,
       ...
  FROM xxx T
  LEFT JOIN xxx T1
    ON T.ID = T1.ID AND T.xx = xx AND T1.xx = xx

0
0
查看评论

left join 左边有数据,右边无数据,查询结果出现inner join的情况(and 和 where 的区别)

A表 id aname 1 张三 2 李四B表 id score aid bname year 1 90 1 语文 2015 2 92 1 数学 2016 select aname,bname,s...
  • chenjianandiyi
  • chenjianandiyi
  • 2016-09-01 17:34
  • 2870

sql用了leftjoin 没有用where得不到最左表全部数据

遇到如题这种问题,很多人都会想着是不是用了where语句做筛选,但实际又没有用,那是什么原因呢?  可能是用了  sum()   cout()  等函数而忘记用GROUP BY。。。!
  • shangdiyisi
  • shangdiyisi
  • 2014-02-28 08:24
  • 1552

left join连接2个查询结果集的用法

首先,可以确切的告诉大家,left join可以连接2个查询结果集。我们通常的用法 是,在left join的左边是一个查询结果集,然后右边是一个单表。如下: SELECT S.STUDENT_NAME STUDENT_NAME, S.STUDENT_NO STUDENT_NO, F...
  • reggergdsg
  • reggergdsg
  • 2017-03-26 14:07
  • 3372

left join 后,左表怎样合并或者去掉重复记录

在使用left join 后会发现如果右表数量有重复的话,查询出来的数量大于左表的数量, 如 表一 test1     ID NAME SEX AGE     1 1...
  • txqd1989
  • txqd1989
  • 2016-12-20 11:17
  • 6158

oracle中右表有过滤条件的left outer join

oracle中left outer join就是以左表作为基表来进行连接操作,连接的结果中一定会涵盖基表中所有的列,即使有某些列与右表找不到匹配关系。如下分别是city表和stds表中的数据截图:     现在执行以下语句: select city.name,s...
  • jeryjeryjery
  • jeryjeryjery
  • 2017-04-12 20:51
  • 1175

oracle left join 查询on中出现and条件

结论: 在使用LEFT JOIN时,右表的限制条件,在ON和WHERE字句中出现,逻辑上的语义完全不同。 过滤条件在ON子句中出现时,不会改变原来LEFT JOIN的执行语义:以左表为基表。 过滤条件在WHERE字句中出现时,已经改变了原来LEFT JOIN的语义,相当于在最后LEFT JOIN的结...
  • huihui870311
  • huihui870311
  • 2017-01-22 19:16
  • 1058

Oracle中left join中右表的限制条件

Oracle中left join中右表的限制条件
  • anyway8090
  • anyway8090
  • 2016-10-19 21:58
  • 510

left join 后,左表怎样…

在使用left join 后会发现如果右表数量有重复的话,查询出来的数量大于左表的数量, 如 表一 test1     ID NAME SEX AGE 1 1 1 1 2 2 2 1 3 3 3 1 表二 test2 ...
  • lsfhack
  • lsfhack
  • 2017-04-08 08:34
  • 190

sql里面leftjoin多表的问题记录

1.做关联时候,on里面只写两个表能够有外键关系的字段,有多个字段则用and连接一起写上,如果少一个,则会产生2倍的数据量,如果少2个,则会产生四倍的数据量,以此类推,而且最要命的问题是多产生出的这些数据没有任何作用而且全是干扰数据,会在我们的程序上滋生很多问题,例如在程序里面你认为经过查询之后符合...
  • Lonyness1995
  • Lonyness1995
  • 2017-02-14 16:34
  • 1029

oracle left join 查询第一条记录

  • Angel_Over_
  • Angel_Over_
  • 2017-12-05 14:56
  • 112
    个人资料
    • 访问:2279次
    • 积分:463
    • 等级:
    • 排名:千里之外
    • 原创:36篇
    • 转载:20篇
    • 译文:0篇
    • 评论:0条
    文章分类