Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql 关联查询

作者:冷视天下   发布日期:2026-07-10   浏览:105

-- 示例代码:MySQL 关联查询

-- 假设有两个表:`orders` 和 `customers`
-- `orders` 表包含订单信息,`customers` 表包含客户信息
-- 我们可以通过客户的ID (`customer_id`) 来关联这两个表

-- 1. 内连接 (INNER JOIN)
-- 查询每个订单对应的客户信息
SELECT orders.order_id, customers.customer_name, orders.order_date
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;

-- 解释:内连接只返回两个表中满足连接条件的记录。
-- 如果某个订单没有对应的客户,或者某个客户没有订单,这些记录将不会出现在结果中。

-- 2. 左连接 (LEFT JOIN)
-- 查询所有订单及其对应的客户信息(即使某些订单没有对应的客户)
SELECT orders.order_id, customers.customer_name, orders.order_date
FROM orders
LEFT JOIN customers ON orders.customer_id = customers.customer_id;

-- 解释:左连接会返回左边表(`orders`)中的所有记录,即使右边表(`customers`)中没有匹配的记录。
-- 对于没有匹配的记录,右边表的字段将显示为 NULL。

-- 3. 右连接 (RIGHT JOIN)
-- 查询所有客户及其对应的订单信息(即使某些客户没有订单)
SELECT orders.order_id, customers.customer_name, orders.order_date
FROM orders
RIGHT JOIN customers ON orders.customer_id = customers.customer_id;

-- 解释:右连接会返回右边表(`customers`)中的所有记录,即使左边表(`orders`)中没有匹配的记录。
-- 对于没有匹配的记录,左边表的字段将显示为 NULL。

-- 4. 全外连接 (FULL OUTER JOIN) - MySQL 不直接支持 FULL OUTER JOIN
-- 模拟全外连接的效果
SELECT orders.order_id, customers.customer_name, orders.order_date
FROM orders
LEFT JOIN customers ON orders.customer_id = customers.customer_id
UNION
SELECT orders.order_id, customers.customer_name, orders.order_date
FROM orders
RIGHT JOIN customers ON orders.customer_id = customers.customer_id;

-- 解释:全外连接会返回两个表中的所有记录,无论是否满足连接条件。
-- 如果没有匹配的记录,相应的字段将显示为 NULL。由于 MySQL 不直接支持 FULL OUTER JOIN,
-- 可以通过 LEFT JOIN 和 RIGHT JOIN 的 UNION 来实现类似的效果。

上一篇:mysql去重查询

下一篇:linux查看mysql安装位置

大家都在看

mysql二级索引

mysqlavg函数保留小数

mysql显示表内容

mysql收集表统计信息

mysql经纬度距离计算

mysql 加密

mysql大小写转换函数

存储过程mysql

mysql 1265

mysql with语句

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站