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

mysql多表查询

作者:烟寂断魂   发布日期:2026-05-18   浏览:66

-- 示例代码:MySQL 多表查询

-- 假设有两个表:`orders` 和 `customers`
-- `orders` 表包含订单信息,`customers` 表包含客户信息
-- 我们希望通过多表查询获取每个订单的详细信息,包括客户的名字

-- 1. 使用 INNER JOIN 查询(内连接)
SELECT orders.order_id, customers.customer_name, orders.order_date, orders.amount
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;

-- 解释:
-- INNER JOIN 只返回两个表中匹配的记录。如果某个订单没有对应的客户,或者某个客户没有下过订单,这些记录将不会出现在结果中。

-- 2. 使用 LEFT JOIN 查询(左连接)
SELECT orders.order_id, customers.customer_name, orders.order_date, orders.amount
FROM orders
LEFT JOIN customers ON orders.customer_id = customers.customer_id;

-- 解释:
-- LEFT JOIN 返回左表 (`orders`) 中的所有记录,即使右表 (`customers`) 中没有匹配的记录。如果没有匹配的客户,结果中的 `customer_name` 将为 NULL。

-- 3. 使用 RIGHT JOIN 查询(右连接)
SELECT orders.order_id, customers.customer_name, orders.order_date, orders.amount
FROM orders
RIGHT JOIN customers ON orders.customer_id = customers.customer_id;

-- 解释:
-- RIGHT JOIN 返回右表 (`customers`) 中的所有记录,即使左表 (`orders`) 中没有匹配的记录。如果没有匹配的订单,结果中的 `order_id` 等字段将为 NULL。

-- 4. 使用 FULL OUTER JOIN 查询(全外连接)
-- 注意:MySQL 不直接支持 FULL OUTER JOIN,但可以通过 UNION 实现类似的效果
SELECT orders.order_id, customers.customer_name, orders.order_date, orders.amount
FROM orders
LEFT JOIN customers ON orders.customer_id = customers.customer_id
UNION
SELECT orders.order_id, customers.customer_name, orders.order_date, orders.amount
FROM orders
RIGHT JOIN customers ON orders.customer_id = customers.customer_id;

-- 解释:
-- 这个查询返回两个表中所有的记录,无论是否匹配。如果有不匹配的记录,相应的字段将为 NULL。

上一篇:mysql max

下一篇:mysql blob转字符串

大家都在看

mysql二级索引

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

mysql 加密

存储过程mysql

mysql 1265

mysql with语句

mysql时间加减

mysql查询表名,模糊匹配

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

Laravel 中文站