【面试干货】什么是内连接、外连接、交叉连结、笛卡尔积?

2024-06-05 12:04

本文主要是介绍【面试干货】什么是内连接、外连接、交叉连结、笛卡尔积?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【面试干货】什么是内连接、外连接、交叉连结、笛卡尔积?

    • 1、内连接(Inner Join)
    • 2、左外连接(Left Outer Join)
    • 3、右外连接(Right Outer Join)
    • 4、全外连接(Full Outer Join)
    • 5、交叉连接(Cross Join)


💖The Begin💖点点关注,收藏不迷路💖

在数据库查询中,连接(Join)是一种用于将两个或多个表中的行联合起来的操作。在实际应用中,常见的连接类型包括内连接、外连接、交叉连接以及全外连接,每种连接类型都有其独特的特点和用途。

详解见: Mysql数据库入门基础篇–mysql 多表查询

在这里插入图片描述

1、内连接(Inner Join)

内连接是连接操作中最常见的一种类型。它只返回两个表中在连接条件下匹配的行。简而言之,内连接只包含那些在两个表中都存在匹配值的行

SELECT a.*, b.*
FROM table1 AS a
INNER JOIN table2 AS b ON a.key = b.key;

2、左外连接(Left Outer Join)

左外连接会返回左表中的所有行以及右表中与左表中行匹配的行如果右表中没有匹配的行,那么结果集中右表对应的列将包含 NULL 值。

SELECT a.*, b.*
FROM table1 AS a
LEFT JOIN table2 AS b ON a.key = b.key;

3、右外连接(Right Outer Join)

右外连接左外连接类似,不过它返回的是右表中的所有行,以及左表中与右表中行匹配的行。如果左表中没有匹配的行,那么结果集中左表对应的列将包含 NULL 值。

SELECT a.*, b.*
FROM table1 AS a
RIGHT JOIN table2 AS b ON a.key = b.key;

4、全外连接(Full Outer Join)

全外连接返回两个表中的所有行,不管另外一边的表中是否存在与它们匹配的行。 如果某一边的表中没有匹配的行,那么结果集中对应的列将包含 NULL 值。

SELECT a.*, b.*
FROM table1 AS a
FULL OUTER JOIN table2 AS b ON a.key = b.key;

5、交叉连接(Cross Join)

交叉连接是一种特殊的连接,它返回两个表的笛卡尔积,即两个表中的每一行都与另一个表中的每一行组合在一起。交叉连接不使用任何匹配或者选取条件。

SELECT a.*, b.*
FROM table1 AS a
CROSS JOIN table2 AS b;

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

这篇关于【面试干货】什么是内连接、外连接、交叉连结、笛卡尔积?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1032999

相关文章

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

Java 连接Sql sever 2008

Java 连接Sql sever 2008 /Sql sever 2008 R2 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class TestJDBC

实例:如何统计当前主机的连接状态和连接数

统计当前主机的连接状态和连接数 在 Linux 中,可使用 ss 命令来查看主机的网络连接状态。以下是统计当前主机连接状态和连接主机数量的具体操作。 1. 统计当前主机的连接状态 使用 ss 命令结合 grep、cut、sort 和 uniq 命令来统计当前主机的 TCP 连接状态。 ss -nta | grep -v '^State' | cut -d " " -f 1 | sort |

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

java面试常见问题之Hibernate总结

1  Hibernate的检索方式 Ø  导航对象图检索(根据已经加载的对象,导航到其他对象。) Ø  OID检索(按照对象的OID来检索对象。) Ø  HQL检索(使用面向对象的HQL查询语言。) Ø  QBC检索(使用QBC(Qurey By Criteria)API来检索对象。 QBC/QBE离线/在线) Ø  本地SQL检索(使用本地数据库的SQL查询语句。) 包括Hibern

nginx长连接的问题

转自: http://www.360doc.com/content/12/1108/17/1073512_246644318.shtml

NGINX轻松管理10万长连接 --- 基于2GB内存的CentOS 6.5 x86-64

转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=190176&id=4234854 一 前言 当管理大量连接时,特别是只有少量活跃连接,NGINX有比较好的CPU和RAM利用率,如今是多终端保持在线的时代,更能让NGINX发挥这个优点。本文做一个简单测试,NGINX在一个普通PC虚拟机上维护100k的HTTP

TL-Tomcat中长连接的底层源码原理实现

长连接:浏览器告诉tomcat不要将请求关掉。  如果不是长连接,tomcat响应后会告诉浏览器把这个连接关掉。    tomcat中有一个缓冲区  如果发送大批量数据后 又不处理  那么会堆积缓冲区 后面的请求会越来越慢。