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

mysql多表联查语句

作者:淡情   发布日期:2026-05-27   浏览:91

-- 示例代码:MySQL 多表联查语句

-- 假设有两个表:`orders` 和 `customers`
-- `orders` 表包含订单信息,`customers` 表包含客户信息

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

-- 解释:内连接只返回两个表中匹配的记录。如果某个客户没有订单,或者某个订单不属于任何客户,则这些记录不会出现在结果中。

-- 2. 左连接 (LEFT JOIN)
-- 查询所有客户信息,即使他们没有订单
SELECT customers.customer_name, orders.order_id, orders.order_date
FROM customers
LEFT JOIN orders ON customers.customer_id = orders.customer_id;

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

-- 3. 右连接 (RIGHT JOIN)
-- 查询所有订单信息,即使它们不属于任何客户
SELECT customers.customer_name, orders.order_id, orders.order_date
FROM customers
RIGHT JOIN orders ON customers.customer_id = orders.customer_id;

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

-- 4. 全外连接 (FULL OUTER JOIN) - MySQL 不直接支持 FULL OUTER JOIN,但可以通过 UNION 实现
-- 查询所有客户和订单信息,无论是否有匹配
SELECT customers.customer_name, orders.order_id, orders.order_date
FROM customers
LEFT JOIN orders ON customers.customer_id = orders.customer_id
UNION
SELECT customers.customer_name, orders.order_id, orders.order_date
FROM customers
RIGHT JOIN orders ON customers.customer_id = orders.customer_id;

-- 解释:全外连接会返回两个表中的所有记录,无论是否有匹配。对于没有匹配的记录,另一个表的字段将显示为 NULL。

上一篇:mysql only_full_group_by

下一篇:mysql修改字段

大家都在看

mysql二级索引

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

mysql 加密

存储过程mysql

mysql 1265

mysql with语句

mysql时间加减

mysql查询表名,模糊匹配

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

Laravel 中文站