Mysql 连接(初学可参考)

    最近在学Mysql的连接,多表连接,有点烧脑,记录自己的理解,能顶用就行,后面再看着改。

1.Mysql Join

           以left join连接为例介绍。 

图 1

    如图1所示,我发现在关键字 left join(见图1红色框框处)左边的表(见图1蓝色椭圆圈起来的)customers是‘左表’,而关键字 left join(见图1红色框框处)右边的表(见图1蓝色椭圆圈起来的)orders是‘右表’。

        其次,右表可能有空值。什么意思?什么是左连接?见图2所示。 并且sql代码如下所示:

SELECT customers.`customer_id`,customers.`last_name`,orders.order_id
FROM customers
LEFT JOIN orders ON customers.`customer_id`= orders.`customer_id`;

图2

      我们首先从customers表找到customer_id和last_name(见红色框框处),要想select到order_id(见绿色框),就让customers表再左连接orders表,而他们俩之所以能连接,全凭借customers表的customer_id和orders表的customer_id一样(见粉色框),能产生关系。我们右表orders去匹配左表customers时发现,orders_id列有空值出现(见紫色框),我们可以对应原表发现,比如customer_id为2的,在orders表中去查——没有对应的cstomers_id,也就没有匹配对应的order_id数值了。

      Mysql连接LEFT JOIN 返回左表中所有行,当右表中没有匹配的行时(即右表来匹配左表),相关列将显示为 NULL。;RIGHT JOIN 返回右表的所有行,并包括左表中匹配的行(即左表来匹配右表),如果左表中没有匹配的行,将返回 NULL 值。RIGHT JOIN 不常用,因为可以用 LEFT JOIN 和表的顺序交换来实现相同的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值