2张表中如何查出不同的数据2张表并没有相同的列
时间: 2024-03-17 07:39:40 浏览: 85
数据库开发 在另一窗体实现对中窗体数据更新
如果两张表没有相同的列,你可以使用 `UNION` 和 `NOT EXISTS` 或者 `NOT IN` 来实现查出不同的数据。
假设有两张表 `table1` 和 `table2`,我们可以使用以下 SQL 语句查出在 `table1` 中有但在 `table2` 中没有的数据:
```
SELECT col1, col2
FROM table1
WHERE NOT EXISTS (
SELECT 1
FROM table2
WHERE table2.col1 = table1.col1 AND table2.col2 = table1.col2
);
```
或者使用 `NOT IN`:
```
SELECT col1, col2
FROM table1
WHERE (col1, col2) NOT IN (
SELECT col1, col2
FROM table2
);
```
我们也可以使用以下 SQL 语句查出在 `table2` 中有但在 `table1` 中没有的数据:
```
SELECT col1, col2
FROM table2
WHERE NOT EXISTS (
SELECT 1
FROM table1
WHERE table1.col1 = table2.col1 AND table1.col2 = table2.col2
);
```
或者使用 `NOT IN`:
```
SELECT col1, col2
FROM table2
WHERE (col1, col2) NOT IN (
SELECT col1, col2
FROM table1
);
```
注意,`NOT IN` 在数据量很大时可能会比 `NOT EXISTS` 慢,因为它需要将子查询的结果集完全加载到内存中。
阅读全文