news 2026/8/17 12:02:37

SQL联查案例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SQL联查案例

SQL 联查(Join)是将来自两个或多个表的数据结合在一起的操作。以下是一些常用的 SQL 联查示例,包括内联接、左联接、右联接和全外联接。

示例数据库表和数据

1. Customers (客户表)
CustomerIDNameCity
1AliceNew York
2BobLos Angeles
3CharlieChicago
4DavidSan Francisco
5EveMiami
2. Orders (订单表)
OrderIDCustomerIDOrderDateAmount
10112025-01-15150.00
10212025-02-20200.00
10322025-01-25300.00
10432025-03-05450.00
10542025-04-10500.00

查询和输出效果

1. 内联接 (INNER JOIN)

查询所有下过订单的客户及其订单信息:

SELECT Customers.CustomerID, Customers.Name, Orders.OrderID, Orders.OrderDate, Orders.Amount FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

输出结果:

CustomerIDNameOrderIDOrderDateAmount
1Alice1012025-01-15150.00
1Alice1022025-02-20200.00
2Bob1032025-01-25300.00
3Charlie1042025-03-05450.00
4David1052025-04-10500.00
2. 左联接 (LEFT JOIN)

查询所有客户及其订单信息,包括没有下过订单的客户:

SELECT Customers.CustomerID, Customers.Name, Orders.OrderID, Orders.OrderDate, Orders.Amount FROM Customers LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

输出结果:

CustomerIDNameOrderIDOrderDateAmount
1Alice1012025-01-15150.00
1Alice1022025-02-20200.00
2Bob1032025-01-25300.00
3Charlie1042025-03-05450.00
4David1052025-04-10500.00
5EveNULLNULLNULL
3. 右联接 (RIGHT JOIN)

查询所有订单及其客户信息,包括没有客户信息的订单:

SELECT Customers.CustomerID, Customers.Name, Orders.OrderID, Orders.OrderDate, Orders.Amount FROM Customers RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

输出结果:

CustomerIDNameOrderIDOrderDateAmount
1Alice1012025-01-15150.00
1Alice1022025-02-20200.00
2Bob1032025-01-25300.00
3Charlie1042025-03-05450.00
4David1052025-04-10500.00
4. 全外联接 (FULL OUTER JOIN)

查询所有客户与所有订单的信息,包括没有匹配的客户和订单:

SELECT Customers.CustomerID, Customers.Name, Orders.OrderID, Orders.OrderDate, Orders.Amount FROM Customers FULL OUTER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

输出结果:

CustomerIDNameOrderIDOrderDateAmount
1Alice1012025-01-15150.00
1Alice1022025-02-20200.00
2Bob1032025-01-25300.00
3Charlie1042025-03-05450.00
4David1052025-04-10500.00
5EveNULLNULLNULL
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/17 15:05:44

Python基础与编程入门

目录 第一部分:见道——Python基础与编程思想 第1章:缘起——初识Python与编程世界 1.1 万法皆有源:编程与计算机科学的简史。1.2 为何是Python:Python的哲学——“禅”与“道”。1.3 工欲善其事:搭建你的第一个Pyt…

作者头像 李华
网站建设 2026/8/17 14:49:22

Github-Lobe Chat:下一代开源AI聊天框架,重新定义人机交互体验

Github-Lobe Chat:下一代开源AI聊天框架,重新定义人机交互体验https://github.com/lobehub/lobe-chat📋 项目概览Lobe Chat 是一个现代化的开源AI聊天界面框架,支持一键免费部署私有化的OpenAI ChatGPT/Claude/Gemini/Groq/Ollama…

作者头像 李华
网站建设 2026/8/17 1:03:06

11、UNIX与Linux编程基础:进程、环境与程序控制

UNIX与Linux编程基础:进程、环境与程序控制 1. 信号机制 在UNIX系统中,内核掌控着众多由不同用户创建的进程,其中包含许多维持系统正常运行所必需的“系统”进程。为了实现进程间的通信,内核允许进程之间相互发送“消息”。不过,由于系统中可能同时存在大量进程和消息,…

作者头像 李华
网站建设 2026/8/18 3:45:43

24、Perl编程入门:基础、应用与最佳实践

Perl编程入门:基础、应用与最佳实践 1. 读取密码文件中的用户名 在某些场景下,我们需要从系统的 /etc/passwd 文件中提取所有用户名。该文件以冒号分隔各个字段,第一个字段即为用户名。以下是一个使用 Perl 实现的脚本: open(PASSWORDS, "/etc/passwd"); wh…

作者头像 李华
网站建设 2026/8/17 22:34:43

UG高版本多轴联动开粗分享—东莞振华职校

UG 高版本(如 NX1899 及以后)新增了更智能的多轴动态开粗功能,能通过侧刃高效切削,还可灵活适配四轴、五轴加工场景,大幅提升复杂工件开粗效率。下面从核心操作流程、关键参数设置、优化技巧和避坑要点四方面展开分享&…

作者头像 李华
网站建设 2026/8/17 22:35:26

10BASE-T1S以太网技术实践:基于Microchip方案实现单对线50节点工业网络

文章目录1. 10BASE-T1S技术概述1.1 技术背景与发展1.2 技术特点与优势1.3 工业应用场景2. 系统架构设计2.1 整体网络架构2.2 硬件选型分析2.3 软件架构设计3. 开发环境搭建3.1 硬件开发环境3.2 软件开发环境3.3 测试工具准备4. 硬件设计与实现4.1 原理图设计4.2 PCB布局要点4.3…

作者头像 李华