-- 示例表结构和数据
-- 创建表 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;
t1
)中的所有记录,即使右表(t2
)中没有匹配的记录也会显示。对于没有匹配的记录,右表的列将显示为 NULL
。t2
)中的所有记录,即使左表(t1
)中没有匹配的记录也会显示。对于没有匹配的记录,左表的列将显示为 NULL
。NULL
。MySQL 不直接支持 FULL OUTER JOIN
,但可以通过 UNION
模拟实现。上一篇:mysqlset语句
下一篇:mysql 索引优化
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站