SQL: 验证一个表中的两列在另一个表中是否存在;要同时存在。 谢谢

你是对的。
该查询是查找table1 和table2 中都存在的A和B。

确保A和B的值完全匹配。

直接执行即可。

sql select语句,查询出两列结果拼接在一起

哎呀,我在杭州的时候就遇到过这个问题。
我给你讲讲你提到的手术。

1 .创建一个表,很简单。
您在 Oracle 中输入: SQL 创建表 test_job( 名称 VARCHAR2 (3 0), 函数 VARCHAR2 (3 0) );
是的,就是这样。
我曾经在创建表时忘记添加主键。
结果后来查数据就变得乱七八糟,真是让人头疼。

2 输入数据。
你的写作风格有问题。
引号是倒置的。
这应该是英文单引号: SQL INSERT INTO test_job(姓名, 工作) VALUES('ste','老师'); INSERT INTO test_job(名称, 工作) 值('jack', 'driver'); INSERT INTO test_job(name, job) VALUES('Mick', 'Cooker'); INSERT INTO test_job(name, job) VALUES('like', 'driver'); INSERT INTO test_job(name, job) VALUES('Lucy', 'Boxer'); INSERT INTO test_job(name, job) VALUES('john', 'iter');
我在插入数据时,有一次忘记写 EXISTS 决策,插入了重复的数据。
我花了很长时间才弄清楚,这让我发疯。

3 查询数据,你这样写就可以了: SQL SELECT FROM TEST_JOB t;
我在查数据的时候,有一次把表名输错了,查了很久也没有结果。
实在是太丢人了。

4 编辑语句并拆分 SQL。
你的写法也是正确的: SQL 选择名称 || '''有工作'''|| JOB FROM TEST_JOB t;
我在连接SQL时,有一次忘记加空格,结果得到的数据是一长串,看着不太舒服。

但是,如果您使用 PL/SQL 匿名块一起完成这一切如果可以的话,效率会更高。
例如: SQL 开始 FOR RECRUITMENT (SELECT NAME, JOB FROM TEST_JOB) 循环 DBMS_OUTPUT.PUT_LINE(rec.name || ''' 的作业是 ''' || rec.job); 结束循环; 结束; /
我当时就尝试了一下,批量处理数据速度快多了。

哦,顺便说一句,||您提到了字符串连接,我在编写报告时经常使用它。
但是,如果您使用的是 Oracle 1 2 c 或更高版本,||和||可以混合使用,但在旧版本中,只能 ||可以使用。

如果您有任何疑问,请直接问我。
我过去经历过很多困难,也许我可以帮助你。

SQL 两列重复查询

说实话,这个 SQL 语句相当复杂。
让我们一步步分解。

首先,创建一个名为 Test 的表。
varchar(1 0) 有两列。
sql 创建表测试( [列表 1 ] VARCHAR(1 0); [列表 2 ] VARCHAR(1 0) )
然后向其中添加一些数据。
请注意,[清单 2 ] 的某些行为 NULL。
sql INSERT INTO 测试([列表 1 ]、[列表 2 ])值 ('1 ', 'A'); ('1 ', 'B'); ('2 ','A'), ('2 ', 空); ('3 ','A'), ('3 ', 空); ('4 ','A'), ('4 ', 空); ('5 ', 空); ('5 ', NULL)
选择所有数据立即查看。
sql 从测试中选择
重点来了。
查询过滤条件[清单1 ]不包含(...)。
我们先看一下括号里的子问题。

首先从测试表中选择[List 1 ]和[List 2 ],去除重复项。
sql [列表1 ]从测试中单独选择; [列表2 ]
然后给这个结果一个名为 T 的临时表名称。
sql T
然后根据[列表1 ]对T表进行分组,统计每组有多少条记录。
sql GROUP BY [list 1 ] COUNT([list 1 ]) = 1
其中 COUNT([list 1 ]) = 1 是键,这意味着仅选择在 [List 1 ] 中出现过一次的记录。
例如“1 ”出现两次; “2 ”也出现两次,但“A”出现四次,因此不会选择“A”。

因此,子查询的最终结果是[列表1 ]中只出现一次的值。
“3 ”,如“4 ”。

然后在外部查询中使用NOT IN;它返回查询结果中没有的记录 [清单 1 ]。
来选择。
sql 不要输入 (...)
也就是说,[列表 1 ] 将排除值为“3 ”或“4 ”的行。

所以最终结果只是[list 1 ]值为'1 '和'2 '的行。

详情请见下表:
[列表1 ] | [列表2 ] ------
| -------- 1 |一个 1 |B 2 |一个 2 | NULL
'3 '; “4 ”,没有更多与“5 ”关联的行。

说实话,这个SQL没什么用。
现在已经不太用了。
当时,我不明白我为什么要这么做。