论坛风格切换切换到宽版
  • 225阅读
  • 0回复

[数据库]查询1个表中的字段在另一个表中不存在 [复制链接]

上一主题 下一主题
离线路灯
 

发帖
669
金币
3670
威望
1901
股份
300
#检查一个表的id不在另一个表中

#1效率最慢 142s 359607
SELECT * FROM saas_gong_yu_student_check WHERE sgysc_task_id NOT IN (SELECT sgyrw_task_id FROM saas_gong_yu_ren_wu );
#2.使用左链接  202s  359607
SELECT * FROM saas_gong_yu_student_check LEFT JOIN saas_gong_yu_ren_wu ON sgyrw_task_id = sgysc_task_id
WHERE sgyrw_task_id IS NULL;
#3. 155s   359607
/*  
逻辑相对复杂,但是速度最快
就是WHERE后查询语句,根据id查询:
如果A中有,B中也有,就为真,返回1,得到1=0不成立,就不输出
如果A中有,B中没有,就为假,返回0,得到0=0成立,就输出
即可以得到A中存在而B中不存在的数据
*/
SELECT * FROM saas_gong_yu_student_check sgytc WHERE (SELECT COUNT(1) as num FROM saas_gong_yu_ren_wu sgyrw WHERE sgyrw.sgyrw_task_id = sgytc.sgysc_task_id)=0;



 
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个