lijfustc

导航

 

1、SQL JOIN 语法(内连接)

  

  • 内连接举例(下面的两个sql语句是完全相同的
    • select * from x,y where x.a = y.a
    • select * from x join y on x.a = y.a

  

 

2、引入 ANSI SQL92,是为了 解决 外连接。

3、体会与下面语句的区别。

  

 

  • 上面的子查询,也可以改写成join语句,但要做一下去重操作。

  

 

4、例题:求员工最新的title信息

  • 也就是:在一对多的情况下,怎么取出一对一的信息。

  

 

  接下来,这样写sql:

  

 

 

5、left outer join语句(outer 省略)

  

 

  • 在左表,但不在右表的数据。(join)

  

 

  • 在左表,但不在右表的数据。(也可以写成子查询)

  

 

6、inner join的on条件和where条件

  • 内连接,上下两条sql语句是相同的。

  

 

  • 外连接(left join),结果是不同的。

  

 

7、在dbt3数据库,客户是加拿大,在1997年没有产生订单的客户,怎么写sql?

  • 首先,下面这样写是有问题的,where条件中的两个条件,是互斥的,有问题。
    • where  o.o_orderkey IS NULL  AND o.oderDATE >= '1997-01-01'  AND o.o_orderDATE < '1998-01-01'

  

 

  • 正确的是下面这样(使用派生表),然后就是 :在左表,不在右表。

  

 

8、行号问题

  

  • 加行号,可以这么写

  

 

  • 也可以用下面的一句sql来完成。

  

  

9、行号问题2

  

  

 

posted on 2022-05-27 11:43  lijfustc  阅读(43)  评论(0)    收藏  举报