Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
什么是SQL的JOIN操作?多表连接的实现方式解析_创想鸟

什么是SQL的JOIN操作?多表连接的实现方式解析

SQL的JOIN操作通过关联键将多表数据拼接,实现完整信息查询。核心类型包括:INNER JOIN仅返回两表匹配的记录;LEFT JOIN保留左表全部记录,右表无匹配时补NULL;RIGHT JOIN与LEFT JOIN相反;FULL JOIN返回两表所有记录,缺失部分补NULL;CROSS JOIN生成笛卡尔积,适用于特殊组合场景;SELF JOIN用于同一表的自关联,处理层级关系。选择合适JOIN类型需结合业务需求、数据模型与性能优化:确保数据准确性,优先使用INNER JOIN或OUTER JOIN根据保留需求;性能上,关键在于为JOIN列建立索引、提前过滤数据、避免不必要的连接,并利用EXPLAIN分析执行计划。常见陷阱包括误导致笛卡尔积、忽略NULL值处理、列名冲突及数据重复;最佳实践为明确写出JOIN类型与ON条件、使用表别名、仅选择必要字段、理解数据关系、逐步构建查询并定期优化慢查询。掌握JOIN是高效数据分析的基础。

什么是sql的join操作?多表连接的实现方式解析

SQL的JOIN操作,说白了,就是把两张或多张表的数据,根据它们之间某个共同的字段(或称之为关联键)给“拼”起来。这就像你在整理不同来源的资料,发现它们都提到了同一个项目编号,于是你就能把关于这个项目的所有信息都归拢到一起。核心目的就是为了从分散的数据中,构建出我们需要的完整、有意义的视图。

在SQL的世界里,多表连接是日常操作,几乎所有稍微复杂一点的查询都离不开它。想象一下,你的订单信息在一张表,客户信息在另一张表,商品详情又在第三张表。如果想知道“哪个客户买了什么商品”,你就必须把这三张表连接起来。这个过程并不神秘,但如何高效、准确地连接,这里面就有些门道了。

SQL中常见的JOIN类型有哪些,它们各自的用途是什么?

我个人觉得,要真正玩转SQL,搞清楚各种JOIN类型是基础中的基础。它们就像是工具箱里的不同扳手,每种都有它特定的用处。

INNER JOIN(内连接)这是最常用的一种,也是最“严格”的连接。它只会返回那些在两张表中都能找到匹配记录的行。如果一张表的某行在另一张表中找不到对应的匹配,那这行数据就不会出现在结果集里。在我看来,当你明确知道两边数据都必须存在时,INNER JOIN是你的首选。

SELECT o.OrderID, c.CustomerNameFROM Orders oINNER JOIN Customers c ON o.CustomerID = c.CustomerID;

这里,只有那些既有订单又有对应客户的记录才会被显示。

LEFT JOIN(左连接,或称LEFT OUTER JOIN)LEFT JOIN会返回左表(FROM关键字后面的表)中的所有记录,即使在右表(JOIN关键字后面的表)中没有找到匹配项。如果右表中没有匹配,那么右表对应的列就会显示为NULL。这玩意儿特别适合你想保留左表所有信息,然后尝试从右表补充数据的情况。比如,你想列出所有客户,即使有些客户还没有下过订单。

SELECT c.CustomerName, o.OrderIDFROM Customers cLEFT JOIN Orders o ON c.CustomerID = o.CustomerID;

你会看到所有客户的名字,如果某个客户没下过订单,他的OrderID就会是NULL。

RIGHT JOIN(右连接,或称RIGHT OUTER JOIN)RIGHT JOIN和LEFT JOIN是镜像关系。它会返回右表中的所有记录,即使在左表中没有找到匹配项。如果左表中没有匹配,那么左表对应的列就会显示为NULL。虽然功能上和LEFT JOIN差不多,但实际工作中我用得相对少一些,因为通常我们习惯把主表放在左边。

SELECT c.CustomerName, o.OrderIDFROM Customers cRIGHT JOIN Orders o ON c.CustomerID = o.CustomerID;

这个查询会列出所有订单,以及它们对应的客户。如果某个订单没有关联的客户(这在设计良好的数据库里不常见,但理论上可能),客户名就会是NULL。

FULL JOIN(全连接,或称FULL OUTER JOIN)FULL JOIN会返回左表和右表中的所有记录。如果左表的某行在右表中没有匹配,右表对应的列为NULL;反之亦然。这基本上是LEFT JOIN和RIGHT JOIN的结合体,它会把所有可能的数据都拉出来。当你需要全面比较两张表,找出所有差异和共同点时,FULL JOIN就派上用场了。

SELECT c.CustomerName, o.OrderIDFROM Customers cFULL JOIN Orders o ON c.CustomerID = o.CustomerID;

结果会包含所有客户和所有订单,无论它们是否有匹配项。

CROSS JOIN(交叉连接)这个连接有点特殊,它会返回两张表的笛卡尔积。简单来说,就是左表的每一行都会和右表的每一行进行组合。如果左表有M行,右表有N行,结果集就会有M*N行。在大多数情况下,你可能不希望这样,因为结果集会非常庞大。但它在某些特定场景下,比如生成测试数据或者做一些数学组合时,还是有用的。

SELECT p.ProductName, s.SupplierNameFROM Products pCROSS JOIN Suppliers s;

这会把每个产品和每个供应商都组合一遍。

SELF JOIN(自连接)顾名思义,就是一张表和它自己进行连接。这听起来有点奇怪,但它在处理层次结构数据(比如员工和他们的经理,或者某个类别的子类别)时非常有用。你需要给表取不同的别名,才能把它当作两张独立的表来处理。

SELECT e1.EmployeeName AS Employee, e2.EmployeeName AS ManagerFROM Employees e1INNER JOIN Employees e2 ON e1.ManagerID = e2.EmployeeID;

这个查询能找出每个员工和他们的直属经理。

飞书多维表格 飞书多维表格

表格形态的AI工作流搭建工具,支持批量化的AI创作与分析任务,接入DeepSeek R1满血版

飞书多维表格 26 查看详情 飞书多维表格

如何选择合适的JOIN类型以优化查询性能和数据准确性?

选择JOIN类型,这可不仅仅是语法问题,它直接关系到你的查询结果是否准确,以及数据库的性能表现。我的经验告诉我,这需要你对数据模型有深刻的理解,并且对业务需求非常清晰。

首先,数据准确性是压倒一切的。你得问自己:我需要左表的所有记录吗?还是右表的所有记录?或者只有两边都匹配的记录才行?这个决定了你是用INNER、LEFT、RIGHT还是FULL JOIN。如果业务要求“列出所有产品,并显示它们可能有的评论”,那显然是LEFT JOIN,因为产品可能没有评论。如果要求“只显示那些被评论过的产品”,那就是INNER JOIN。搞错了,结果就南辕北辙了。

其次,性能优化。这是一个大话题,但和JOIN类型息息相关。

索引是王道:这是我反复强调的。所有用于JOIN的列(也就是ON子句里的列),都应该有合适的索引。没有索引,数据库可能需要全表扫描,那性能就会像蜗牛一样慢。尤其是大表之间的连接,索引能把查询时间从几分钟缩短到几毫秒。JOIN的顺序:虽然很多数据库优化器会尝试重新排序JOIN操作,但你手动把结果集较小的表放在JOIN操作的左边(特别是对于LEFT JOIN),有时也能带来性能提升。这能让数据库在处理后续连接时,需要处理的数据量更少。提前过滤:尽量在JOIN之前,也就是在WHERE子句中,对数据进行过滤。减少参与JOIN的行数,能显著降低JOIN操作的复杂度和资源消耗。比如说,你只需要过去一周的订单,那么先

WHERE OrderDate >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)

,再进行JOIN,会比先JOIN所有订单再过滤快得多。避免不必要的JOIN:有时候,为了获取一两个字段,你可能会连接好几张表。但如果这些字段可以通过其他方式(比如冗余存储,或者通过一个更小的辅助表)获取,那么就应该考虑避免复杂的JOIN。每增加一个JOIN,数据库的开销都会增加。

EXPLAIN

命令:这是我用来诊断JOIN性能问题的利器。通过

EXPLAIN

(或者

EXPLAIN ANALYZE

,如果你的数据库支持)命令,你可以看到数据库是如何执行你的查询的,包括它使用了哪些索引,JOIN的顺序是怎样的。这能帮你找出性能瓶颈。

说到底,选择合适的JOIN类型,就是要在业务需求、数据模型和性能之间找到一个平衡点。没有一劳永逸的答案,需要根据具体情况具体分析。

在实际应用中,处理多表连接时有哪些常见的陷阱和最佳实践?

在我的职业生涯中,处理多表连接就像是走钢丝,既要快速,又要稳妥。这里有一些我总结的常见陷阱和最佳实践,希望能帮你少踩坑。

常见的陷阱:

笛卡尔积的意外发生:这是最常见的错误之一。如果你忘记了在JOIN操作中指定

ON

子句,或者

ON

子句的条件写错了,导致两个表的所有行都相互组合,就会产生一个巨大的、无意义的笛卡尔积。结果集可能会瞬间撑爆你的内存,或者让查询跑上几个小时。我见过不少新手因为这个错误导致生产环境的数据库崩溃。性能黑洞:正如前面提到的,没有索引的JOIN列、连接太多大表、或者在JOIN之后才进行大量过滤,都可能让你的查询陷入性能泥潭。尤其是在高并发的系统中,一个慢查询就可能拖垮整个服务。数据重复(Duplicate Rows):当你在连接一对多关系(比如一个客户有多个订单)的表时,如果只是简单地

SELECT *

然后JOIN,结果集中可能会出现多条重复的“客户”信息。这并不是说数据本身重复了,而是你的查询结果因为JOIN的关系,把主表(一侧)的记录重复展示了。这时你可能需要

DISTINCT

关键字,或者通过子查询、CTE(Common Table Expressions)来聚合数据。NULL值处理的误区:JOIN操作对NULL值的处理有时会让人感到困惑。默认情况下,

ON

子句中的

column1 = column2

不会匹配

NULL = NULL

。如果你想把包含NULL值的列也作为连接条件,或者处理那些可能为NULL的关联键,需要特别注意,可能需要用到

IS NULL

或者

COALESCE

等函数。模糊的列名:当连接多张表时,如果不同表有同名的列,比如

Customers

表和

Orders

表都有

ID

列,而你直接

SELECT ID

,数据库就会报错说列名不明确。这时候,使用表别名来限定列名(如

c.ID

,

o.ID

)就显得尤为重要。

最佳实践:

始终使用明确的JOIN类型和ON子句:不要依赖旧式的逗号分隔的隐式JOIN,那样可读性差,也容易犯笛卡尔积的错误。清晰地写出

INNER JOIN ... ON ...

,能让你的意图一目了然。为表和列使用有意义的别名:这不仅能减少输入量,更重要的是能极大地提高查询的可读性。

SELECT c.CustomerName, o.OrderDate FROM Customers c INNER JOIN Orders o ON c.CustomerID = o.CustomerID;

远比

SELECT Customers.CustomerName, Orders.OrderDate FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

清晰。索引所有JOIN和WHERE子句中的列:我前面已经强调过,但这里还是要再提。这是提升查询性能最有效、最直接的方法之一。*只选择你需要的列,而不是`SELECT

**:

SELECT *`会拉取所有列的数据,即使你不需要,这会增加网络传输负担、内存消耗,并可能导致不必要的磁盘I/O。精确选择列是好习惯。理解你的数据模型:在写任何复杂的JOIN之前,花时间理解表之间的关系(一对一、一对多、多对多),以及哪些列是主键、外键。这是构建正确、高效查询的基础。逐步构建复杂查询:对于涉及多张表的复杂查询,我通常会先从两张表的简单INNER JOIN开始,确认结果无误后,再逐步增加其他表或更复杂的条件。这样可以更容易地定位问题。利用子查询和CTE分解复杂逻辑:有时候,一个查询的逻辑可能非常复杂,包含多个聚合、过滤和连接。这时,使用子查询或CTE(Common Table Expressions,公共表表达式)可以把大问题分解成小问题,让每个部分都更易于理解和调试。定期审查和优化慢查询:性能不是一次性的任务。随着数据量的增长和业务需求的变化,原本高效的查询也可能变慢。定期使用数据库的性能监控工具,找出慢查询并进行优化,是数据库维护的重要一环。

多表连接是SQL的灵魂,掌握它,你就能从数据中挖掘出无限的价值。但记住,力量越大,责任越大,用好它,才能真正发挥数据的潜力。

以上就是什么是SQL的JOIN操作?多表连接的实现方式解析的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/590909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
在Pandas中高效计算分组堆叠数据框中的变量比率
上一篇 2025年11月10日 15:53:11
路由器里的数据包mtu值设置多少合适
下一篇 2025年11月10日 15:53:27

相关推荐

  • ThinkPad电脑黑屏无显示如何解决?商务本常见问题修复教程

    ThinkPad黑屏但风扇转时,先做强制断电放电,再接外显测试;若有显示则为屏幕或排线问题,否则查内存、显卡等内部硬件,逐步深入排查可定位故障。 ThinkPad电脑突然黑屏无显示,这事儿搁谁身上都挺糟心的,尤其是那些把笔记本当命根子的商务人士。别慌,经验告诉我,很多时候它没你想的那么严重,往往是一…

    2026年9月22日
    000
  • 避开蝴蝶号常见误区:为什么你的内容始终无法获得推荐

    蝴蝶号推荐机制的核心逻辑是围绕用户留存与时长,通过用户行为数据判断内容价值。平台看重完播率、互动率等“微动作”,而非单纯阅读量;原创性、垂直度及是否符合规范也影响推荐权重。常见误区包括:①标题党导致高点击低完读,被算法降权;②内容同质化缺乏稀缺性和专业性;③忽视评论区互动,错失活跃度加分;④内容与平…

    2026年9月22日
    000
  • VSCode配置C语言调试环境 从零开始VSCode搭建C开发工具

    要从零开始在#%#$#%@%@%$#%$#%#%#$%@_e2fc++805085e25c9761616c00e065bfe8中搭建c语言开发和调试环境,首先需安装vscode本体、c/c++编译器(如mingw或gcc)并配置系统环境变量,接着安装vscode的c/c++扩展,然后创建项目并编写c…

    2026年9月22日
    000
  • 如何用PhotoLab的AI裁剪图片?快速实现智能图像裁剪教程

    如何用PhotoLab的AI裁剪图片?快速实现智能图像裁剪教程如何用PhotoLab的AI裁剪图片?快速实现智能图像裁剪教程如何用PhotoLab的AI裁剪图片?快速实现智能图像裁剪教程如何用PhotoLab的AI裁剪图片?快速实现智能图像裁剪教程

    PhotoLab的AI裁剪功能通过智能识别主体与构图原则,提供优化裁剪建议,区别于传统手动裁剪的纯物理操作,能自动应用美学法则提升照片视觉吸引力;在人像、社交媒体适配、风景静物等场景中表现突出,尤其擅长保留核心焦点并适配多平台比例;用户可导入图片后使用AI裁剪工具,系统分析画面并生成建议裁剪框,支持…

    2026年9月22日 用户投稿
    000
  • MySQL常见连接错误及其解决方案汇总_开发和运维必备?

    MySQL常见连接错误及其解决方案汇总_开发和运维必备?MySQL常见连接错误及其解决方案汇总_开发和运维必备?MySQL常见连接错误及其解决方案汇总_开发和运维必备?MySQL常见连接错误及其解决方案汇总_开发和运维必备?

    access denied错误需检查用户名密码及权限,使用grant授权并执行flush privileges;2. can’t connect错误应确认mysql运行状态、防火墙设置及bind-address配置;3. host not allowed错误需创建用户并授权特定或全部ip…

    2026年9月22日 用户投稿
    000
  • 递归实现列表排序检查与条件移除最大值

    本文详细介绍了如何使用Java递归方法处理整数列表。核心内容包括:首先检查列表是否已排序,如果已排序则直接返回false;如果未排序,则查找列表中的最大值。仅当最大值位于列表的起始或结束位置时,才将其移除并递归地继续处理列表。如果最大值位于列表中间,则打印当前列表并终止递归。 在数据处理和算法设计中…

    2026年9月22日
    000
  • VSCode如何实现代码可视化调试 VSCode执行流程图形化分析方法

    vscode的可视化调试功能通过内置调试器和扩展生态,显著提升代码理解与问题排查效率。1. 首先配置launch.json文件以定义调试环境,支持多种语言如node.js、python等;2. 在代码中设置断点,程序运行至断点时暂停,便于检查变量状态和执行上下文;3. 利用调试面板查看变量、监视表达…

    2026年9月22日
    000
  • MySQL备份压缩与加密技巧_MySQL提升备份安全与效率

    MySQL备份压缩与加密技巧_MySQL提升备份安全与效率MySQL备份压缩与加密技巧_MySQL提升备份安全与效率MySQL备份压缩与加密技巧_MySQL提升备份安全与效率MySQL备份压缩与加密技巧_MySQL提升备份安全与效率

    mysql备份压缩与加密的核心在于减少存储空间并提升数据安全性。1. 压缩能显著降低存储成本,提升传输效率,加快恢复速度,简化备份管理,并有助于满足合规要求;2. 加密则通过防止未授权访问保障数据安全。实现方式主要有:1. 使用mysqldump结合gzip和gpg/openssl进行逻辑备份、压缩…

    2026年9月22日 用户投稿
    100
  • 石墨文档如何创建在线表格并排序_石墨文档表格处理的高效技巧

    首先创建在线表格并进行排序,提升团队协作效率。打开石墨文档点击“新建”选择“表格”,支持从Excel导入数据、多页管理及多人协同编辑;选中数据区域后通过“数据”菜单进行单列或多条件排序,注意避免合并单元格影响范围,配合筛选功能更高效;利用快捷键跳转、自动调整列宽、冻结行列、使用模板、设置格式、添加评…

    2026年9月22日
    100
  • VS Code中Dockerized PHP项目:解决PHP版本冲突的教程

    本教程旨在解决在VS Code中开发Dockerized PHP项目时,VS Code默认识别宿主机PHP版本而非容器内PHP版本的问题。核心解决方案是利用VS Code的Remote – Containers扩展,实现直接在Docker容器内部进行代码开发,从而确保VS Code及其所…

    2026年9月22日
    200
  • 蔡司2亿影像大小王,年度影像旗舰vivo X300系列发布!

    蔡司2亿影像大小王,年度影像旗舰vivo X300系列发布!蔡司2亿影像大小王,年度影像旗舰vivo X300系列发布!蔡司2亿影像大小王,年度影像旗舰vivo X300系列发布!蔡司2亿影像大小王,年度影像旗舰vivo X300系列发布!

    PConline最新资讯,vivo于今晚正式揭晓X300系列新机,定位“全焦段影像旗舰”,起售价为4399元。该系列成为首款搭载联发科天玑9500芯片的智能手机,并携手三星与索尼共同定制多颗影像传感器,在影像能力、屏幕素质及续航表现上力求全面跃升。 产品线涵盖X300与X300 Pro两款机型,价格…

    2026年9月22日 用户投稿
    000
  • 从AI场景搭建到蝴蝶号运营,全流程实战攻略

    从AI场景搭建到蝴蝶号运营,全流程实战攻略从AI场景搭建到蝴蝶号运营,全流程实战攻略从AI场景搭建到蝴蝶号运营,全流程实战攻略从AI场景搭建到蝴蝶号运营,全流程实战攻略

    做ai内容变现需先明确方向再选工具,注册蝴蝶号要模拟真实行为,用ai提升效率但需调整内容细节,流量转化重于播放量。一、先确定内容类型和风格,根据方向选择合适ai工具链搭建流程,用免费api测试效果。二、蝴蝶号注册尽量用企业主体,资料完整,养号阶段关注同类账号,保持每天发布1~2条内容,视频控制在30…

    2026年9月22日 用户投稿
    100
  • 优化Spring Boot应用:构建高效通用的DTO与实体映射服务

    本文旨在解决Spring Boot项目中DTO与实体间重复映射的痛点。通过引入一个基于泛型的抽象服务层,结合ModelMapper工具,我们展示了如何构建一个类型安全、可重用的通用映射机制。此方案显著减少了样板代码,提升了代码的可维护性和开发效率,避免了手动类型转换的繁琐与潜在错误。 在构建基于sp…

    2026年9月22日
    100
  • GIMP中如何利用AI裁剪图片?一步步完成高效图像裁剪方法

    GIMP虽无“一键AI裁剪”功能,但可通过智能选择工具(如前景选择、智能剪刀)精准选中主体,结合Resynthesizer插件的内容感知填充实现类AI裁剪效果;对于更高要求,可协同Remove.bg等外部AI工具完成自动抠图,再导入GIMP进行裁剪或背景替换,形成高效智能裁剪工作流。 ☞☞☞AI 智…

    2026年9月22日
    100
  • MySQL字段映射表自动生成方案_Sublime一键导出JSON与结构化模板

    MySQL字段映射表自动生成方案_Sublime一键导出JSON与结构化模板MySQL字段映射表自动生成方案_Sublime一键导出JSON与结构化模板MySQL字段映射表自动生成方案_Sublime一键导出JSON与结构化模板MySQL字段映射表自动生成方案_Sublime一键导出JSON与结构化模板

    如何利用sublime text插件提升mysql字段映射表生成效率?1. 插件通过自动化提取sql语句中的表结构信息,减少手动操作;2. 支持一键导出为json或结构化模板(如markdown、html表格),提升开发效率;3. 利用sublime text的python插件机制,实现快速集成与执…

    2026年9月22日 用户投稿
    000
  • 疑似荣耀500系列入网 代号Merry全系支持80W有线快充

    10月25日,知名数码博主“数码闲聊站”透露,荣耀500系列新机已现身工信部,型号分别为mep-an00和mey-an00,预计代号为merry/merryp,全系支持80w有线快充。该博主还表示,此前上手的样机提供了黑色、银色、粉色和蓝色等多种配色方案,外观设计或将延续前代爆款风格。 据最新消息,…

    2026年9月22日
    000
  • VSCode搭建Python开发环境(附详细截图,小白也能学会)

    答案:搭建VSCode Python环境需安装Python并添加至PATH,安装VSCode及Python扩展,创建项目文件并选择正确解释器,通过虚拟环境隔离依赖,利用Pylance、Black、Flake8等工具提升开发效率,常见问题多为路径或环境配置错误,可通过检查解释器选择和安装路径解决。 在…

    2026年9月22日
    100
  • PHP each() 函数的替代方案:自定义实现与常见错误修正

    本文探讨了PHP中已废弃的each()函数的替代方案。针对常见的自定义实现,如myEach(),文章详细指出了其在返回数组结构中常犯的错误,并提供了正确的代码示例,以确保替代函数能够模拟each()的预期行为,帮助开发者编写更健壮、兼容未来的PHP代码。 理解 each() 函数及其废弃背景 在PH…

    2026年9月22日
    000
  • Vision Transformer 必读系列之图像分类综述(三): MLP、ConvMixer 和架构分析

    Vision Transformer 必读系列之图像分类综述(三): MLP、ConvMixer 和架构分析Vision Transformer 必读系列之图像分类综述(三): MLP、ConvMixer 和架构分析Vision Transformer 必读系列之图像分类综述(三): MLP、ConvMixer 和架构分析Vision Transformer 必读系列之图像分类综述(三): MLP、ConvMixer 和架构分析

    号外号外!awesome-vit 上新啦, 欢迎大家 Star Star Star ~ https://github.com/open-mmlab/awesome-vit 前言 在 Vision Transformer 必读系列之图像分类综述(一):概述 一文中对 Vision Transforme…

    2026年9月22日 用户投稿
    200
  • 蝴蝶号无人直播完整流程详解:搭建+开播+引流

    蝴蝶号无人直播完整流程详解:搭建+开播+引流蝴蝶号无人直播完整流程详解:搭建+开播+引流蝴蝶号无人直播完整流程详解:搭建+开播+引流蝴蝶号无人直播完整流程详解:搭建+开播+引流

    蝴蝶号无人直播的完整流程包括前期准备、直播搭建、开播设置、引流推广、监控与维护五个步骤。前期准备需完成账号注册认证、硬件设备配置、软件安装及素材准备;直播搭建涉及场景设置、素材导入、循环播放设定及自动化脚本配置;开播设置包括直播间信息填写、推流配置与测试直播;引流推广可通过平台内工具、社交媒体、内容…

    2026年9月22日 用户投稿
    100

发表回复

登录后才能评论
关注微信