mysql有 inner join_mysql何时使用LEFT JOIN以及何时使用INNER JOIN?

本文详细介绍了数据库中的INNER JOIN和LEFT JOIN操作。INNER JOIN仅返回两个表中匹配的记录,而LEFT JOIN会返回左表的所有记录,即使右表中没有匹配项,结果也会用NULL填充。通过示例展示了两种联接的不同输出结果,帮助理解其工作原理。
摘要由CSDN通过智能技术生成

如果只希望两个表中显示的结果与Join条件匹配,请使用内部联接。

如果需要表A中的所有结果,请使用左连接,但如果表B具有与表A的某些记录相关的数据,则您还希望在同一查询中使用该数据。

如果需要两个表中的所有结果,请使用完全连接。

INNER JOIN只返回两个表中匹配值的行,而LEFT JOIN将返回LEFT表中的所有行,即使RIGHT表中没有匹配的行也是如此

一个简单的例子

TableA

ID Value

1 TableA.Value1

2 TableA.Value2

3 TableA.Value3

TableB

ID Value

2 TableB.ValueB

3 TableB.ValueC

INNER JOIN产生:

SELECT a.ID,a.Value,b.ID,b.Value

FROM TableA a INNER JOIN TableB b ON b.ID = a.ID

a.ID a.Value b.ID b.Value

2 TableA.Value2 2 TableB.ValueB

3 TableA.Value3 3 TableB.ValueC

LEFT JOIN产生:

SELECT a.ID,a.Value,b.ID,b.Value

FROM TableA a LEFT JOIN TableB b ON b.ID = a.ID

a.ID a.Value b.ID b.Value

1 TableA.Value1 NULL NULL

2 TableA.Value2 2 TableB.ValueB

3 TableA.Value3 3 TableB.ValueC

如您所见,LEFT JOIN包含TableA中ID = 1的行,即使TableB中没有匹配的行ID = 1,而INNER JOIN特别排除了行,因为TableB中没有匹配的行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值