当前位置: 首页 > news >正文

mysql关联查询语句

假设存在以下三张表:

  • orders 表:记录订单信息,包含 order_id(订单编号)、customer_id(客户编号)、order_date(订单日期)等字段。
  • customers 表:记录客户信息,包含 customer_id(客户编号)、customer_name(客户姓名)、customer_email(客户邮箱)等字段。
  • products 表:记录产品信息,包含 product_id(产品编号)、product_name(产品名称)、product_price(产品价格)等字段。
  • order_items 表:记录订单中的商品信息,包含 order_item_id(订单项编号)、order_id(订单编号)、product_id(产品编号)、quantity(数量)等字段。

1. 内连接(INNER JOIN)

内连接会返回两个表中匹配的记录。下面的例子查询每个订单的客户姓名和订单日期:

mysql-join-examplesMySQL 关联查询示例

生成 inner_join.sql

SELECT customers.customer_name, orders.order_date
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id; 

生成 left_join.sql

SELECT customers.customer_name, orders.order_date
FROM customers
LEFT JOIN orders ON customers.customer_id = orders.customer_id;    

生成 right_join.sql

SELECT customers.customer_name, orders.order_date
FROM orders
RIGHT JOIN customers ON orders.customer_id = customers.customer_id;    

生成 multi_table_join.sql

SELECT 
    orders.order_id,
    customers.customer_name,
    products.product_name,
    products.product_price,
    order_items.quantity
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id
INNER JOIN order_items ON orders.order_id = order_items.order_id
INNER JOIN products ON order_items.product_id = products.product_id;    

2. 左连接(LEFT JOIN)

左连接会返回左表中的所有记录,以及右表中匹配的记录。若右表中没有匹配项,则用 NULL 填充。下面的例子查询所有客户及其订单信息,即便客户没有订单:

3. 右连接(RIGHT JOIN)

右连接与左连接相反,它会返回右表中的所有记录,以及左表中匹配的记录。若左表中没有匹配项,则用 NULL 填充。下面的例子查询所有订单及其对应的客户信息,即便订单没有关联的客户(这种情况通常较少):

4. 多表连接

下面的例子查询每个订单中产品的详细信息,包括订单编号、客户姓名、产品名称、产品价格和数量:

你可以根据实际的表结构和业务需求,对上述 SQL 语句进行调整。

相关文章:

  • C/C++条件判断
  • 混合开发部署实战:PyInstaller + .NET 8 + Docker全链路配置
  • flutter doctor 信号号超时
  • CCF CSP 第36次(2024.12)(1_移动_C++)
  • 基于STM32、HAL库的TCA9555PWR I/O扩展器驱动程序设计
  • linux如何用关键字搜索日志
  • 学习笔记十二——Rust 高阶函数彻底入门(超详细过程解析 + 每步数值追踪)
  • 【微信小程序】报错: http://127.0.0.1:7001 不在以下 request 合法域名列表中
  • 危化品安全员考试常见与注意事项
  • Python GUI 编程 | QPushButton 按钮控件详解 — 边框扁平化
  • virt-install和libguestfs工具常用虚拟机管理命令
  • Oracle REGEXP_SUBSTR
  • LINUX基石
  • 今日一记:五人分鱼与医院值班推理
  • 每日一题(小白)暴力娱乐篇30
  • 简单socket通信,回显 服务器程序与客户端程序之间的通信。
  • linux-vi和文件操作
  • Windows 图形显示驱动开发-WDDM 1.2功能—无显示器系统支持
  • CExercise_13_1排序算法_1插入排序
  • 了解一下Unity的RenderQueue
  • 美军空袭也门拘留中心,已致68人死亡
  • 上海“生育友好岗”已让4000余人受益,今年将推产假社保补贴政策
  • 大家聊中国式现代化|陶希东:打造高水平安全韧性城市,给群众看得见的安全感
  • 释新闻|SEVIS是什么?在美留学生遭身份中止意味什么?
  • 俄方证实俄总统普京正在会见美特使威特科夫
  • 专访|攸佳宁:手机只是矛盾导火索,重要的是看见孩子的内心