sql - 如何查找表A中的所有列是否存在于表B中
问题描述
Table A
Id name phone
1 sam 7753457893
2 tom 7753457893
3 pop 7753457893
4 john 7753457893
table B
name phone
sam 7753457893
tom 7753457893
pop 7753457893
john 7753457893
如何查找表 A 中的所有列是否存在于表 B 中。我尝试使用 except,但出现编译错误“设置运算符输入分支的列数无效,预期为 22,得到 11”。我使用了此查询“从表 B 中选择 *,但从表 A 中选择 *”。表 A 有 22 列,表 B 有 11 列。我需要一个查询来知道表 B 中的所有列都在表 A 中
基本上我想知道表 B 是否是表 A 的子集。
解决方案
您可以使用此查询
SELECT ColumnFromB
FROM TableB
EXCEPT
SELECT ColumnFromA
FROM TableA
这将为您提供 B 中但不在 A 中的记录列表。然后您可以将结果插入表变量,并检查其 COUNT(如果 count= 0 'subset' 否则不是子集) .
推荐阅读
- c++ - 二进制“==”:未找到采用“Enemy”类型的左操作数的运算符(或没有可接受的转换)
- php - 如何通过两个 AND 条件过滤一列?
- jquery - 有没有类似这个滚动效果的 jQuery 或 CSS 滑块?
- bash - 如何使 bash 命令可以从 Windows 中的任何目录执行?
- java - Spring Reactive Webflux 微服务的多重认证策略
- sql - Get-AzureADUser - ALL - PowerShell Slow 获取所有用户和对帐户进行更改的用户
- php - 如何从mysql更改为mysqli
- jquery - ASP Net Core AJAX 将 NULL 发送到控制器
- curl - 如何使用 curl --upload-file 上传 2 个文件
- reactjs - 在 React 中使用 Enzyme/Jest 正确配置组合 Redux Store