select t1.* from test1 t1 where t1.tel not in (select t2.tel from test2 t2 where t1.tel=t2.tel)
替换为
select t.id, t.phone from (select t1.id,t1.tel phone,t2.tel from test1 t1 left join test2 t2 on t1.tel=t2.tel) t where t.tel is null
另外 not in注意null为空的情况 如果为空可能查询不出来了
sql1
select t1.* from test1 t1 where t1.tel not in (select t2.tel from test2 t2 where t1.tel=t2.tel)
与
sql2
select t1.* from test1 t1 where t1.tel not in (select t2.tel from test2 t2 ) 的区别 第二个sql有可能出错
因为 not in ()中如果有一项为null则查询结果为空
上面sql2正确写法
select t1.* from test1 t1 where t1.tel not in (select t2.tel from test2 t2 where t2.tel is not null)
另sql连接字符串
concat链接字符串
select t.id, t.phone
from (select t1.id, t1.tel phone, t2.tel
from test1 t1
left join test2 t2
on t1.tel = t2.tel or t1.tel =CONCAT('010',t2.tel)) t
where t.tel is null
分享到:
相关推荐
为了避免使用NOT IN ,我们可以把它改写成外连接(Outer Joins)或NOT EXISTS。 如 我要查询 Sendorder表中的冗余数据(没有和reg_person或worksite相连的数据) sql=”select Sendorder.id,Sendorder.reads,Send...
替代方案可以是使用`NOT EXISTS`或者结合外连接和空值判断。 例如,在备份数据的场景中,假设我们有一个`Info`表和一个`bakInfo`表,我们想要将`Info`表中不存在于`bakInfo`表中的记录插入到`bakInfo`,传统的`NOT ...
总的来说,通过使用 `LEFT JOIN` 替换 `NOT IN` 是一种常见的查询优化策略,特别是在处理大量数据时。但也要注意,优化查询不仅仅是改变语法,还需要考虑实际的数据分布、索引的存在和选择以及数据库的特定配置。在...
2. 连接词的替换 however可以被替换成but、yet、nevertheless等,以增加语言的多样性和丰富性。例如:I wanted to go to the party, however, I was too tired. → I wanted to go to the party, but I was too ...
`NOT EXISTS` 和 `NOT IN` 不总是可以互相替换。当子查询的列可能包含`NULL`值时,`NOT IN`将不会返回包含`NULL`的行,而`NOT EXISTS`则会考虑`NULL`。因此,选择哪个取决于具体业务需求。 5. **使用执行计划进行...
在本主题中,我们将探讨如何利用PB11.5通过Java Database Connectivity (JDBC) API连接到MySQL数据库。JDBC是Java平台的标准接口,用于与各种数据库进行通信,包括MySQL。 首先,要建立PB11.5和MySQL之间的连接,你...
通过使用左外连接,我们只需要找到那些没有匹配的`WagesPerMonthHis` 记录,即`b.OrgIdS IS NULL` 的情况,这通常比`NOT IN` 更有效,特别是在数据量大的时候。在这个案例中,优化后的语句执行时间降到了400毫秒,...
$mail->Body = 'This is the email body in plain text.'; if(!$mail->send()) { echo 'Message could not be sent.'; echo 'Mailer Error: ' . $mail->ErrorInfo; } else { echo 'Message has been sent'; } ``...
在使用Hive的Beeline客户端进行连接时,可能会遇到错误提示"Could not open client transport with JDBC Uri: jdbc:hive2://hcmaster:10000/default"。这个错误通常意味着Beeline无法通过JDBC URL成功建立到Hive ...
- Finally = lastly = last of all = last but not least = ultimately **大作文结尾段** 结尾段通常总结观点或提出建议,以下是一些结尾句的替换方式: 1. Taking all factors into account, my own view is ...
System.err.println("Oracle JDBC driver not found. Please ensure 'ojdbc.jar' is in the classpath."); e.printStackTrace(); } catch (SQLException e) { System.err.println("Error connecting to Oracle ...
4. **使用更先进的连接池**:尽管DBCP是一个成熟的连接池实现,但随着技术的发展,像HikariCP、Druid等现代连接池库提供了更好的性能和稳定性,可以考虑替换使用。 5. **监控和报警**:设置合适的监控指标,如连接池...
- **9.1.2 使用IN的嵌套查询**:内层查询返回一列数据,外层查询将这些值作为比较对象,`IN`用于包含,`NOT IN`用于排除。 - **9.1.3 使用ANY的嵌套查询**:外层查询与内层查询结果的任意值进行比较,只要满足一个...
此外,还有一些表示“也”、“和”、“或者”、“因此”的同义词,例如“too”可以用“also”、“in addition”替换,“and”可以换成“plus”、“as well as”,“or”可以用“otherwise”、“if not”表达,“so”...
connstr = "Driver={Oracle in OraClient12home1};DBQ=your_oracle_service_name;User ID=your_username;Password=your_password" ' 尝试打开连接 conn.Open connstr ' 如果没有抛出错误,表示连接成功 If Not ...
"notop"表示这个权重文件不包含顶级全连接层,这意味着你可以根据自己的任务需求添加自定义的分类层。 该文件通常用于在Keras框架中加载预训练的Inception V3模型,以便进行迁移学习或微调。Keras是一个高级神经...
- 记得替换`your_server_url`为实际的PHP文件所在服务器的URL。 5. **测试与调试** - 在Android模拟器或真实设备上运行应用,输入用户名和密码,点击“连接”按钮,查看日志或Toast消息确认是否成功连接到PHP并...
6. **替换NOT IN**:用`NOT EXISTS`替代`NOT IN`,以获得更好的性能。 7. **避免UNION**:禁止使用`UNION`,若必须,应拆分为两个独立查询。 8. **嵌套查询限制**:避免超过三层的嵌套查询,考虑使用临时表或子...
8. **用NOT EXISTS替换NOT IN**:在否定子查询中,NOT EXISTS通常比NOT IN快,因为NOT EXISTS只需检查是否存在匹配项,而NOT IN可能需要遍历整个子查询结果。 这些技巧可以帮助数据库管理员和开发人员优化Oracle ...
2. **替换NOT IN操作符**: - NOT IN操作符不利用索引,建议使用NOT EXISTS或外连接结合空值判断来替代。例如,`NOT IN (subquery)`可以改为`NOT EXISTS (SELECT 1 FROM ... WHERE ...)`。 3. **谨慎使用操作符**...