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


浙公网安备 33010602011771号