sql几种join说明

说白了,SQL中的JOIN操作就像在数据的海洋里钓鱼。
不同的join类型就是不同的渔网,提取的鱼(数据)自然也不同。
其实很简单。
我们先来说说最重要的事情。
内连接是捕获两个表中都包含的鱼。
例如,如果您想知道哪个客户下了哪个订单,请使用它。
而且,左连接和右连接就像两边都有开口的渔网。
左连接向左打开并从左表中查找。
即使右侧没有兼容的鱼,仍然会被捕获。
适合统计所有订单;反过来,RIGHT JOIN 适合分析所有客户。
还有一个更重要的细节。
整个关节向两侧打开,将所有的鱼固定在两侧。
不过,这张渔网非常大,所以你要小心,不要捕获太多的数据。
一开始以为CROSS JOIN常用,后来发现是错误的。
就像一张大渔网,将两张桌子上的鱼全部捕住。
结果可能是一场骗局。
等等,还有一件事。
自连接是一种自行连接的渔网。
这在处理层级关系时特别有用,例如想要查看谁是谁的上级。
最后,我想提醒您一个简单的危险。
选择 JOIN 时,应考虑数据要求、性能和可读性。
渔网不要设置太大或太小,你就钓不到你想要的鱼。

SQL中几种连接的相互区别

左外连接,顾名思义,就是左边显示所有的,右边不匹配的用NULL。
它最常用于筛选尚未选择课程的学生。
右外连接是反向的,右侧完整,左侧不匹配NULL,常用于从选课表中查学生信息。
完全外连接将两者结合起来,两边都会显示,如果不匹配则使用 NULL。
它更多地用于检查完整的数据。
在选课复习学生时,非左非右的课程就足够了。
全程留学课程更全面。
根据您的需要进行选择。

SQL中的左连接与右连接,内连接

哎,这个SQL连接的东西刚开始学的时候让我很头疼。
但一旦我掌握了它的窍门,它实际上使用起来非常简单。

点击左侧的链接。
2 01 4 年我在上海做电商平台项目的时候就经常使用它,当时我们要查用户订单表和用户信息表,看看哪个用户买了什么。
即使有些用户没有买任何东西,他们也必须被列出来。
如果订单上没有任何信息,则该订单为空。
这使用左连接并写入 SELECT user., order。
FROM user LEFT JOIN order ON user.id = order.user_id。
您会看到,用户表是左表,订单表是右表。
结果是所有用户退出,已购买订单信息也退出,未购买订单列填NULL。
这件事的关键是左表(上表)的数据必须完整,右表无法匹配的数据将为空。

然后好连接,2 01 5 年我在深圳建了一个物流系统,情况就逆转了。
我们需要列出路线表上的所有信息,并且还需要查看每个路线表最终发送给哪个司机。
但部分运单可能尚未发送,司机信息为空。
此时,需要使用右连接,将运单表作为右表,将导体表作为左表。
写法和left join类似,不过顺序颠倒了,SELECT顺序,driver。
FROM order RIGHT JOIN driver ON order.driver_id = driver.id。
结果是所有路线图都已发布。
发送过驱动的有驱动信息,未发送过的驱动信息为空。
右连接的使用场景相对较少,但是当涉及到确保正确的表(后面的表)包含所有数据时,它就做到了这一点。

最后是内连接,这个用的最多,就不多说了。
2 01 0年或者2 01 1 年我们主要靠他来验证数据。
您将仅看到两个表中匹配且存在的记录。
比如你查用户和订单,只要一个用户买了东西,另一个用户没有买东西,或者没有用户买东西,它就查不到。
写法很简单,SELECT FROM user, order WHERE user.id = order.user_id,也可以使用INNER JOIN。
这需要两个表都包含匹配的数据。
如果没有匹配的,我也不想要。

所以你看,这三种连接中,左连接保证左表完整,右连接保证右表完整,内连接保证完全匹配。
大家在使用的时候,要清楚自己要加持哪些表数据或者要匹配哪些数据。
如果你经常做这项工作,你自然就会熟悉它。