假设有两张表 orders1 和 orders2,均包含 order_no 和 order_date 两列数据。现在要比较这两张表的 order_no 列,提取出在 orders1 中存在但在 orders2 中不存在的订单号。
SQL 语句如下:
SELECT order_no
FROM orders1
WHERE order_no NOT IN (
SELECT order_no
FROM orders2
);
以上SQL语句将会返回在 orders1 中存在但在 orders2 中不存在的订单号。
注意,在比较时要保证 order_no 列上的数据类型相同,否则可能会出现错误。
示例代码如下:
-- orders1表结构
CREATE TABLE orders1 (
order_no INT PRIMARY KEY,
order_date DATE NOT NULL
);
-- orders2表结构
CREATE TABLE orders2 (
order_no INT PRIMARY KEY,
order_date DATE NOT NULL
);
-- 向orders1中插入数据
INSERT INTO orders1 VALUES (1, '2021-07-01');
INSERT INTO orders1 VALUES (2, '2021-07-02');
INSERT INTO orders1 VALUES (3, '2021-07-03');
INSERT INTO orders1 VALUES (4, '2021-07-04');
-- 向orders2中插入数据
INSERT INTO orders2 VALUES (1, '2021-07-01');
INSERT INTO orders2 VALUES (3, '2021-07-03');
INSERT INTO orders2 VALUES (5, '2021-07-05');
-- 查询两个表中不同的order_no
SELECT order_no
FROM orders1
WHERE order_no NOT IN (
SELECT order_no
FROM orders2
);
以上代码将会返回数据:'2”、'4”,这些订单号只存在于 orders1 中,但是在 orders2 中不存在。
上一篇:比较两个表中的两个复合列
下一篇:比较两个表中的子字符串