首页 > 数据库 >SQL连表查询

SQL连表查询

时间:2023-10-29 21:00:15浏览次数:28  
标签:join 查询 连表 student SQL id where class select

SQL连表查询

  1 内连接(INNER JOIN)

     使用比较运算符(包括=、>、<、<>、>=、<=、!>和!<)进行表间的比较操作,查询与连接条件相匹配的数据。根据比较运算符不同,内连接分为等值连接和不等连接两种。

1

2

3

select from [dbo].[class] ,student  where [class].id = student.id 

//两者等价

select *from [dbo].[class] inner join student on [class].id = student.id

 2 外连接(INNER JOIN)

①左外连接

概念:返回左表中的所有行,如果左表中行在右表中没有匹配行,则结果中右表中的列返回空值。

select * from tb1 left join tb2  on tb1.geID=tb2.ID

是表1和表2的交集在并上1表所有数据

②右外连接

概念:恰与左连接相反,返回右表中的所有行,如果右表中行在左表中没有匹配行,则结果中左表中的列返回空值。

select * from tb1 right join tb2  on tb1.geID=tb2.ID

是表1和表2的交集在并上2表所有数

3 全连接

概念:返回左表和右表中的所有行。当某行在另一表中没有匹配行,则另一表中的列返回空值

1 select * from student full join [class] on student.id=[class].id

4交叉连接(CROSS JOIN):也称迪卡尔积

 概念:不带WHERE条件子句,它将会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积(例如:student和class,返回3*4=12条记录),如果带where,返回或显示的是匹配的行数。

4.1、不带where:

1 select * from student , [class] 
2 //等价于
3 select * from student cross join [class]

4.2、有where子句,往往会先生成两个表行数乘积的数据表,然后才根据where条件从中选择。

1 select * from student cross join [class] where student.id=[class].id
2 (注:cross join后加条件只能用where,不能用on) 
原文链接:https://blog.csdn.net/Ssuicinkiyo/article/details/127652194

标签:join,查询,连表,student,SQL,id,where,class,select
From: https://www.cnblogs.com/sunny3158/p/17796459.html

相关文章

  • SQL Server数据库连接字符串的几种写法整理
     SQLServer数据库连接字符串的几种写法整理一、远程连接SQLServer数据库1.sqlserver身份验证连接字符串:privatestringConnstrSqlServer="server=数据库地址及实例;uid=数据库账号;pwd=数据库密码;database=数据库名";2.windows身份验证连接字符串:privatestr......
  • centos7安装mysql5.7(转)
    https://cloud.tencent.com/developer/article/2226207安装步骤https://www.cnblogs.com/key-l731/p/9551400.html查看本机安装情况  1.下载MySQLyum包wgethttp://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm复制2.安装MySQL源rpm-Uvhmysql5......
  • MYSQL内外连接查询实践
    自身连接查询自身连接,就是将表本身和表进行笛卡尔积计算,得到结果,但是由于表名相同,因此要先起一个别名:SELECT*FROM表名别名1,表名别名2自身连接查询的连接对象变成自己和自己了。例如1:student表自身连接查询#自身连接查询,笛卡尔积:81条数据select*fromstudent......
  • SQL Server 存储过程的应用及 LabVIEW 调用
    存储过程应用及LabVIEW调用1、存储过程就是一条或多条SQL语句的集合,可以称之为批处理文件; 2、部分优点:a、加快运行速度;b、可封装复杂操作;c、实现模块化程序设计,统一数据库访问接口,提高可维护性;d、增加代码安全性; 3、部分缺点:a、不同数据库语法......
  • Python使用pymysql和xlrd2将Excel数据导入MySQL数据库
    在数据处理和管理中,有时候需要将Excel文件中的数据导入到MySQL数据库中进行进一步的分析和操作。本文将介绍如何使用Python编程语言实现这个过程。导入所需库importxlrd2#导入xlrd2库,用于读取Excel文件importpymysql#导入pymysql库,用于连接和操作MySQL数据库fromdat......
  • Pandas数据导入和导出:CSV、Excel、MySQL、JSON
    导入MySQL查询结果:read_sqlimportpandascon="mysql+pymysql://user:[email protected]/test"sql="SELECT*FROM`student`WHEREid=2"#sql查询df1=pandas.read_sql(sql=sql,con=con)print(df1)导入MySQL整张表:read_sql_table#整张表df2=pandas.rea......
  • 万字长文 | 业内 MySQL 线程池主流方案详解 - MariaDB/Percona/AliSQL/TXSQL/MySQL企
    作者:卢文双资深数据库内核研发本文首发于2023-05-0422:07:40http://dbkernel.com/2023/05/04/mysql-threadpool-main-solutions-details/#本文主要从功能层面对比percona-server、mariadb、阿里云AliSQL、腾讯TXSQL、MySQL企业版线程池方案,都基于MySQL8.0。至于源......
  • Mybatis sql日志在线转换工具
     Mybatissql日志在线转换工具 有时候在linux服务器上复制出来的SQL,带问号,不好转化成正常的SQL,网上搜了一下也没发现有在线的转换工具,刚好自己有个轻语音乐网站,有域名和服务器,所以想着把这个页面集成上去,也方便自己日常使用。 Mybatissql日志在线转换工具地址:http://linl......
  • Mysql常用命令(无废话精简版)
    文章目录1.数据库操作CREATEDATABASEdatabase_name;--创建数据库DROPDATABASEdatabase_name;--删除数据库SHOWDATABASES;--显示所有数据库USEdatabase_name;--选择要使用的数据库2.表操作CREATETABLEtable_name(column1datatype,column2datatype,...);--......
  • 收藏从未停止,练习从未开始——MYSQL游标存储过程IDEA快捷键配置SpringBoot入门到入土G
    “收藏从未停止,练习从未开始”,或许有那么一些好题好方法,在被你选中收藏后却遗忘在收藏夹里积起了灰?今天请务必打开你沉甸甸的收藏重新回顾,分享一下那些曾让你拍案叫绝的好东西吧!本人详解:(提醒:随笔)本人详解作者:王文峰,参加过2020年度博客之星,《Java王大师王天师》作者采购供应链共享......