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

mysql中join的用法

作者:余烬已熄   发布日期:2025-10-01   浏览:94

-- 示例代码:使用 INNER JOIN 连接两个表

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

-- users 表结构:
-- +----+----------+-----------+
-- | id | username | email     |
-- +----+----------+-----------+
-- | 1  | Alice    | alice@example.com |
-- | 2  | Bob      | bob@example.com   |
-- | 3  | Charlie  | charlie@example.com |
-- +----+----------+-----------+

-- orders 表结构:
-- +----+------------+---------+
-- | id | user_id    | product  |
-- +----+------------+---------+
-- | 1  | 1          | Book     |
-- | 2  | 1          | Pen      |
-- | 3  | 2          | Notebook |
-- +----+------------+---------+

-- 使用 INNER JOIN 查询每个用户的订单信息
SELECT users.id, users.username, orders.product
FROM users
INNER JOIN orders ON users.id = orders.user_id;

-- 解释:
-- 上述查询将返回所有有订单的用户及其对应的订单产品。
-- INNER JOIN 只会返回两个表中匹配的记录。如果某个用户没有订单,则该用户不会出现在结果集中。

-- 示例输出:
-- +----+----------+---------+
-- | id | username | product |
-- +----+----------+---------+
-- | 1  | Alice    | Book    |
-- | 1  | Alice    | Pen     |
-- | 2  | Bob      | Notebook|
-- +----+----------+---------+
-- 示例代码:使用 LEFT JOIN 连接两个表

-- 使用 LEFT JOIN 查询所有用户及其订单信息(即使用户没有订单)
SELECT users.id, users.username, orders.product
FROM users
LEFT JOIN orders ON users.id = orders.user_id;

-- 解释:
-- 上述查询将返回所有用户,即使他们没有订单。对于没有订单的用户,`product` 列将为 NULL。

-- 示例输出:
-- +----+----------+---------+
-- | id | username | product |
-- +----+----------+---------+
-- | 1  | Alice    | Book    |
-- | 1  | Alice    | Pen     |
-- | 2  | Bob      | Notebook|
-- | 3  | Charlie  | NULL    |
-- +----+----------+---------+
-- 示例代码:使用 RIGHT JOIN 连接两个表

-- 使用 RIGHT JOIN 查询所有订单及其对应的用户信息(即使订单没有对应的用户)
SELECT users.id, users.username, orders.product
FROM users
RIGHT JOIN orders ON users.id = orders.user_id;

-- 解释:
-- 上述查询将返回所有订单,即使它们没有对应的用户。对于没有对应用户的订单,`id` 和 `username` 列将为 NULL。
-- 注意:RIGHT JOIN 不常用,通常可以使用 LEFT JOIN 的反向操作来实现相同的效果。

-- 示例输出:
-- +------+----------+---------+
-- | id   | username | product |
-- +------+----------+---------+
-- | 1    | Alice    | Book    |
-- | 1    | Alice    | Pen     |
-- | 2    | Bob      | Notebook|
-- +------+----------+---------+
-- 示例代码:使用 FULL OUTER JOIN 连接两个表(MySQL 不直接支持)

-- MySQL 不直接支持 FULL OUTER JOIN,但可以通过 UNION 模拟
SELECT users.id, users.username, orders.product
FROM users
LEFT JOIN orders ON users.id = orders.user_id
UNION
SELECT users.id, users.username, orders.product
FROM users
RIGHT JOIN orders ON users.id = orders.user_id;

-- 解释:
-- 上述查询将返回所有用户和所有订单,即使它们之间没有匹配的记录。
-- 对于没有订单的用户,`product` 列将为 NULL;对于没有用户的订单,`id` 和 `username` 列将为 NULL。

-- 示例输出:
-- +------+----------+---------+
-- | id   | username | product |
-- +------+----------+---------+
-- | 1    | Alice    | Book    |
-- | 1    | Alice    | Pen     |
-- | 2    | Bob      | Notebook|
-- | 3    | Charlie  | NULL    |
-- +------+----------+---------+

上一篇:mysql 关联update

下一篇:mysql删除数据表

大家都在看

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

mysql 加密

存储过程mysql

mysql with语句

mysql时间加减

mysql查询表名,模糊匹配

brew 启动mysql

unsigned在mysql中是什么意思

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

Laravel 中文站