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

mysql outer join

作者:仯孒①個亾哋杺¢涳孒   发布日期:2025-04-20   浏览:87

-- 示例表结构和数据

-- 创建表 t1 和 t2
CREATE TABLE t1 (
    id INT PRIMARY KEY,
    name VARCHAR(50)
);

CREATE TABLE t2 (
    id INT PRIMARY KEY,
    t1_id INT,
    description VARCHAR(50),
    FOREIGN KEY (t1_id) REFERENCES t1(id)
);

-- 插入一些示例数据
INSERT INTO t1 (id, name) VALUES (1, 'Alice'), (2, 'Bob'), (3, 'Charlie');
INSERT INTO t2 (id, t1_id, description) VALUES (1, 1, 'Description for Alice'), (2, 3, 'Description for Charlie');

-- 左外连接 (LEFT OUTER JOIN)
-- 返回 t1 中的所有记录,即使在 t2 中没有匹配的记录也会显示。对于没有匹配的记录,t2 的列将显示为 NULL。
SELECT t1.id, t1.name, t2.description
FROM t1
LEFT OUTER JOIN t2 ON t1.id = t2.t1_id;

-- 右外连接 (RIGHT OUTER JOIN)
-- 返回 t2 中的所有记录,即使在 t1 中没有匹配的记录也会显示。对于没有匹配的记录,t1 的列将显示为 NULL。
SELECT t1.id, t1.name, t2.description
FROM t1
RIGHT OUTER JOIN t2 ON t1.id = t2.t1_id;

-- 全外连接 (FULL OUTER JOIN)
-- 返回两个表中的所有记录,如果没有匹配的记录,则返回 NULL。
-- 注意:MySQL 不直接支持 FULL OUTER JOIN,但可以通过 UNION 模拟实现。
SELECT t1.id, t1.name, t2.description
FROM t1
LEFT OUTER JOIN t2 ON t1.id = t2.t1_id
UNION
SELECT t1.id, t1.name, t2.description
FROM t1
RIGHT OUTER JOIN t2 ON t1.id = t2.t1_id;

解释说明:

  • 左外连接 (LEFT OUTER JOIN):返回左表(t1)中的所有记录,即使右表(t2)中没有匹配的记录也会显示。对于没有匹配的记录,右表的列将显示为 NULL
  • 右外连接 (RIGHT OUTER JOIN):返回右表(t2)中的所有记录,即使左表(t1)中没有匹配的记录也会显示。对于没有匹配的记录,左表的列将显示为 NULL
  • 全外连接 (FULL OUTER JOIN):返回两个表中的所有记录,如果没有匹配的记录,则返回 NULL。MySQL 不直接支持 FULL OUTER JOIN,但可以通过 UNION 模拟实现。

上一篇:mysqlset语句

下一篇:mysql 索引优化

大家都在看

mysqlavg函数保留小数

mysql经纬度距离计算

存储过程mysql

mysql with语句

mysql时间加减

brew 启动mysql

unsigned在mysql中是什么意思

mysql 插入更新

mysql.user

python mysql update

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

Laravel 中文站