大家好,我有一条语句,可以执行,只是感觉写的很搓,请教高手优化下现在有两个表:Table1、Table2 ,Table2中记录了Table1和其他表中的关系
需求:根据关键字TAB1_ID,查找不在Table2表中,而在Table1中的数据如下:Table1
{TAB1_ID,NAME,...
1,a;
2,b
3,c
4,d
5,e
}Table2
{TAB2_ID,TAB1_ID,...
1,2
2,3
3,4
}select a.TAB1_ID
from Table1 a
where a.TAB1_ID in(3,4,5)
and a.TAB1_ID not in (select b.TAB1_ID
from Table2 b
where b.TAB1_ID in (3,4,5))上面用了in 和not in,感觉写的不怎么对头,请高手帮优化下啊,不胜感激~~
需求:根据关键字TAB1_ID,查找不在Table2表中,而在Table1中的数据如下:Table1
{TAB1_ID,NAME,...
1,a;
2,b
3,c
4,d
5,e
}Table2
{TAB2_ID,TAB1_ID,...
1,2
2,3
3,4
}select a.TAB1_ID
from Table1 a
where a.TAB1_ID in(3,4,5)
and a.TAB1_ID not in (select b.TAB1_ID
from Table2 b
where b.TAB1_ID in (3,4,5))上面用了in 和not in,感觉写的不怎么对头,请高手帮优化下啊,不胜感激~~
解决方案 »
- row_count()用mysql_affected_rows()获取后值一直为-1
- 面试题sql语句,帮小弟看看
- 在DOS控制台输入SQL命令插入汉字可以。但是用ODBC 插入汉字时报错?紧急求救
- 求查询语句 取得最新纪录
- 如何不重复
- oracle 热备份怎么搞,如何设置归档模式.谢谢,
- Mysql5.0, 我用Mysql administrator里edit table设置列的charset为gb2312可以生效,为啥设置table option为gb2312却不生效?
- 请教一个SQL语法(合并列)
- 一个查询问题。请大家指教
- mdb 2 mysql 该如何导入
- mysql 关于or前后条件的索引问题
- 急啊!有哪位兄弟知道sqlite怎么定义默认当前系统时间精确到毫秒不,查了好久,都没有查到
select *
from table1 a,table2 b
where a.tab1_id in (3,4,5) and and b.tab_id in (3,4,5) a.tab1_id<>b.tab1_id
不过这样明显没有结果集吧条件1和2 同3没有任何交集吧
from Table1 a
where a.TAB1_ID in(3,4,5)
and not exists (select 1 from Table2 where TAB1_ID in (3,4,5) and TAB1_ID=a.TAB1_ID)