信息表info 栏目表classt现在查询info表,条件是查询的info那个表的信息所属的栏目模型ID(字段modid)不等于10,用classid关联两个表
我有两种方法
1,select * from info where (select modid from classt where classid=info.classid)<>10
2,select info.* from info,classt where classt.modid<>10表面上看第二个简单些,因为需要结合程序,我用第一种方便
现不考虑方便问题,请问哪个SQL效率更高
我有两种方法
1,select * from info where (select modid from classt where classid=info.classid)<>10
2,select info.* from info,classt where classt.modid<>10表面上看第二个简单些,因为需要结合程序,我用第一种方便
现不考虑方便问题,请问哪个SQL效率更高
解决方案 »
- 如何学习数据库知识
- 菜鸟问题
- information_schema里面根本不正确
- 数据倒入的问题
- 怎么样在Mysql中吧30的整数倍的数提取出来啊?
- 请问,我下了一个MYSQL,请问我怎么知道它是源文件的还是二进制的?我刚刚刚学LINUX和MYSQL。
- postgresql怎么在linux下面没有打开5432端口提供网络数据库连接请求!????请给为高手指点!
- 有快速将DBF转为MYSQL的方法吗?
- 请教 MYSQL insert语句的长度限制 MYSQL语句最长可以多长
- 如何写多个值在一个字段时的查询语句
- 求解mysql进程mysqld.exe无法启动原因及解决方法
- com.mysql cannot be resolved to a type 错误
执行计划不就知道那个效率更高一些。
2,select info.* from info,classt where classt.modid<>10上面两个语句如果你没有写错的话,生成结果是不同的。功能并不等效,也无从比较性能。
应该改为
select info.* from info,classt
where info.classid=classt .classid and classt.modid<>10这样功能才是一样!
是否需要换写法,要看数据。另外你explain下,看看。
select info.* from info,classt where info.classid=classt .classid and classt.modid<>10应该是这样,那就是查询两个表,要比子查询快一些是吧
具体可以explain select info.* from info,classt where info.classid=classt .classid and classt.modid<>10
select * from info where (select modid from classt where classid=info.classid)<>10
执行计划不就知道那个效率更高一些。