mysql left outer join 和 right outer join

 

看到某某用了左连接,右连接之类的,但是概念很模糊了

今天特地弄了一下

 

表字段

 

表字段

 

数据一

 

数据二

 

简单理解如下:

左连接(左边表为主,右边有相同数据的列出)

select * from project p left join staff s on p.name=s.name;

左连接

 

右连接(右表为主,左边有相同数据的列出)

select * from project p right join staff s on p.name=s.name;

右连接

 

 

多个left join 或者 right join

 

 select * from

 staff s left join project p on s.name=p.name

 left join staff s1 on s.name=s1.name;

 

 

select * from staff s ,project p left join project p1 on p.name=p1.name;

即使写成

select * from staff s,project p left join project p1 on p1.name=p.name;

都行

 

但是:select * from staff,project p left join project p1 on s.name=p1.name;

这样是不行的

???

 

是靠近left join 的相邻的表的连接吗?

 

 

 

  --select * from staff u,project t
  --left join project l on l.name=t.name,
 
  --project s
  --left join project m
  --on s.name=m.name
  --left join project s1
  --left join project uc2
  --on s1.name=uc2.name on s1.name=s.name;

 

### MySQL LEFT OUTER JOIN 的使用教程 #### 基本概念 `LEFT OUTER JOIN` 是一种左外连接,在执行此类型的连接时,会返回左侧表中的所有记录以及右侧表中符合条件的匹配项。如果右表中不存在任何匹配,则结果集中相应的列将填充 `NULL`[^3]。 #### 语法结构 标准的 `LEFT OUTER JOIN` 语句遵循以下模式: ```sql SELECT columns FROM table1 LEFT OUTER JOIN table2 ON table1.common_column = table2.common_column; ``` 其中 `table1` `table2` 表示参与连接操作的数据表名称;而 `common_column` 则代表用于关联两者的公共字段名。需要注意的是,“OUTER”关键字在此处通常是可选的,即可以直接写作 `LEFT JOIN`[^4]。 #### 实际案例分析 假设存在两张表格——`orders`(订单详情) `customers`(客户资料),现在希望查询每一个客户的最近一次下单情况,即使该顾客从未下过单也要显示其基本信息。此时就可以利用 `LEFT OUTER JOIN` 来实现这一需求: ```sql SELECT customers.customer_id, customers.name, MAX(orders.order_date) AS last_order_date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id GROUP BY customers.customer_id, customers.name; ``` 上述命令首先尝试找到每一对具有相同 customer ID 的记录组合,并从中挑选出最新的订单日期作为输出的一部分。对于那些没有任何对应订单记录的客户而言,last_order_date 字段将会被赋予 NULL 值[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值