首页 > 数据库 >【Access语法】SQL连接查询

【Access语法】SQL连接查询

时间:2025-01-02 23:53:20浏览次数:1  
标签:语法 JOIN 连接 Access 订单 客户 SQL 查询 CustomerID

Microsoft Access 中,联合查询(也称为 JOIN 查询)是用于从两个或多个相关表中检索数据的一种方法。通过使用联合查询,您可以将来自不同表的数据组合在一起,以便在一个结果集中进行查看和分析。

联合查询的类型

Access 支持几种不同类型的联合查询,包括:

内连接(Inner Join):返回两个表中满足连接条件的记录。

左连接(Left Join 或 Left Outer Join):从左表返回所有的记录,以及右表中满足连接条件的记录。如果右表中没有匹配项,则结果集中对应的字段将包含 NULL。

右连接(Right Join 或 Right Outer Join):与左连接相反,从右表返回所有的记录,以及左表中满足连接条件的记录。

案例:

以上是客户表和订单表,其中CustomerID是共有字段,注意订单表中没有没有CustomerID为3的记录,客户表中没有CustomerID为4的记录。

要求1:列出所有客户及其订单信息(左连接)

SELECT 客户表.CustomerName,订单表.OrderID,订单表.OrderDate, 订单表.Amount
FROM 客户表
LEFT JOIN 订单表 ON 客户表.CustomerID = 订单表.CustomerID

结果如下:

这个查询将返回所有客户的信息,以及与他们相关的所有订单信息。没有订单的客户将显示其客户信息,但订单相关字段将为 NULL。

要求2:列出有订单的客户及其订单信息(内连接)

SELECT 客户表.CustomerName,订单表.OrderID,订单表.OrderDate, 订单表.Amount
FROM 客户表
INNER JOIN 订单表 ON 客户表.CustomerID = 订单表.CustomerID

结果如下:

所以内连接的查询将只返回那些有订单的客户及其订单信息。没有订单的客户将不会出现在结果集中。

要求3:列出所有订单对应的客户姓名(右连接)

SELECT 客户表.CustomerName,订单表.OrderID,订单表.OrderDate, 订单表.Amount
FROM 客户表
RIGHT JOIN 订单表 ON 客户表.CustomerID = 订单表.CustomerID

右连接的查询以为第二个表为主,与左连接正好相反。

要求4:列出所有客户对应的订单,所有订单对应的客户。

除了以上三种连接以外,实际情况中我们可能还需要显示两个表中的所有内容即我有的你没有的,你有的我没有的都需要显示出来,在SQL中这种查询叫做全连接,FULL JOIN,可惜在Access中不存在,不过我们可以通过变通的办法实现。

SELECT 客户表.CustomerName,订单表.OrderID,订单表.OrderDate, 订单表.Amount
FROM 客户表  
LEFT JOIN 订单表 ON 客户表.CustomerID = 订单表.CustomerID
UNION
SELECT 客户表.CustomerName,订单表.OrderID,订单表.OrderDate, 订单表.Amount
FROM 客户表
RIGHT JOIN 订单表 ON 客户表.CustomerID = 订单表.CustomerID

查询结果如下:

原创 武旭鹏 米宏Office

标签:语法,JOIN,连接,Access,订单,客户,SQL,查询,CustomerID
From: https://www.cnblogs.com/o-O-oO/p/18648954

相关文章

  • 【Access语法】SQL嵌套查询
    SQL子查询(Subquery)是在一个查询语句中嵌套另一个查询语句的功能。子查询可以出现在SELECT、FROM、WHERE或HAVING等子句中,用于返回单个值、一行值或一列值,以供外部查询使用。多层嵌套查询(也称为多级嵌套查询或深度嵌套查询)是指在一个查询语句中嵌套了多个子查询的情况。这种查询结......
  • 数据库MYSQL的学习
    数据库MYSQL笔记1.对库的操作createdatabasedb_itheima1charsetutf8;        #创建数据库,设置编码方式 showcreatedatabasedb_itheima1;        #查看数据库的建库信息 showcreatetable表名;                    #查......
  • Redis,MongoDB,MySQL,ES之间的区别与适用场景
    Redis,MongoDB,MySQL,ES之间的区别与适用场景:redis是一种高性能键值存储数据库,基于内存操作,支持数据持久化,支持数据类型丰富(如:字符串,哈希,列表,集合,有序集合等),redis还提供了订阅/发布,事务,lua脚本,主从同步等功能,适用于访问频繁,数据量较小,对性能要求比较高的业务场景,如缓存,队列,计数......
  • 《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装
    @目录8.Docker常规安装简介8.1docker常规安装总体步骤8.2安装tomcat8.3安装mysql8.3.1dockerhub上面查找mysql镜像8.3.2从dockerhub上(阿里云加速器)拉取mysql镜像到本地标签为5.78.3.3使用mysql5.7镜像创建容器(也叫运行镜像)简单版实战版8.4安装redis8.5安装nginx本人......
  • Python 基本语法全解析:从安装到应用
    Python是一种广泛使用的高级编程语言,因其简洁易懂的语法和强大的功能而受到开发者的喜爱。从数据分析到人工智能,Python都在各个领域占据着重要地位。如果你是编程新手,Python是一个非常适合入门的语言。本篇博客将带你从安装Python到理解其基础语法,再到实际应用中常见的内......
  • SQL训练营:第十三章 高级联结 —— 数据界的“桥梁工程师”!
    欢迎来到SQL训练营的第十三章!在这一章中,我们将深入学习高级联结的技巧。如果你觉得前几章的表联结已经让你得心应手,那么这一章将会带你进入更加复杂的联结世界。准备好了吗?让我们开始吧!第一节:准备相关基础表和数据为了方便我们练习高级联结,我们将创建几个新的表格,并插入......
  • MySQL综合实验 图书管理系统
    目录第一章题目第二章整体思路与数据库设计2.1功能与数据表的对应关系2.2表之间的主外键关系2.3完整性及约束设计2.4数据库对象设计第三章数据库和数据表的创建3.1创建数据库3.2创建登陆表(user_login)3.3创建图书信息表(book_info)3.4创建读者信息......
  • python音乐推荐系统(双协同过滤推荐算法)Django框架 大数据毕业设计 MySQL数据库(建议收
    博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌>......
  • 从源码解释为什么执行MyBatis接口就可以执行SQL
    1:场景分析在我们使用SpringBoot+MyBatis的时候,我们一般是先引入依赖,然后配置mybatis:mapper-locations:classpath:mapper/*.xmltype-aliases-package:com.coco.pojo当然还要在启动类上加上一个注解这时候,就可以编写一个接口,然后调用这个方法就可以执行配置文......
  • MySQL中distinct和group by去重的区别
    MySQL中distinct和groupby去重的区别在MySQL中,我们经常需要对查询结果进行去重,而DISTINCT和GROUPBY是实现这一功能的两种常见方法。虽然它们在很多情况下可以互换使用,但它们之间还是存在一些差异的。接下来,我们将通过创建测试数据和执行不同的查询来探讨这两种方法的区......