两个表,一是类别表,内有类ID和类别名,另一是文章表,现要查一ID为7的文章的类名和题目,时间,内容
SELECT a.dk_name,b.dia_title,b.dia_time, b.dia_content from (select * from diary where dia_id=7) b inner join dia_kind a on a.dk_id=b.dia_dk_idSELECT a.dk_name,b.dia_title,b.dia_time, b.dia_content from (select * from diary where dia_id=7) b , dia_kind a where a.dk_id=b.dia_dk_idSELECT a.dk_name,b.dia_title,b.dia_time, b.dia_content from diary b inner join dia_kind a on a.dk_id=b.dia_dk_id where b.dia_id=7请问哪种查询好些,或还有更好吗
SELECT a.dk_name,b.dia_title,b.dia_time, b.dia_content from (select * from diary where dia_id=7) b inner join dia_kind a on a.dk_id=b.dia_dk_idSELECT a.dk_name,b.dia_title,b.dia_time, b.dia_content from (select * from diary where dia_id=7) b , dia_kind a where a.dk_id=b.dia_dk_idSELECT a.dk_name,b.dia_title,b.dia_time, b.dia_content from diary b inner join dia_kind a on a.dk_id=b.dia_dk_id where b.dia_id=7请问哪种查询好些,或还有更好吗
解决方案 »
- mysql查询一个区间里缺少的数字
- mysql中简单的一句SQL
- C连接MYSQL源码
- 我买的虚拟主机空间,登录phpmyadmin时,提示无法加载 mcrypt 扩展,这个正常吗?
- mysql数据库中 表文件.frm 的移植问题???
- 求助,一个求记录总数的问题!!
- Error:ost 'pt' is not allowed to connect to this MySQL server 请教众高手怎么解决,谢谢!
- mysql replace中问题
- 回答问题,悬赏50元人民币,快来看啊!!!!!!!!!!!!!!!!!!!!
- 请问哪有MySQL ODBC 3.51 的下载,我在老家网上下载,总是不成功。
- 关于游戏用户注册问题
- SQL Manager for MySQL 显示中文乱码
还有一种方法楼主自己可以测试,就是用desc SQL语句 来查看一下相关字段数值来判断语句的执行效率,具体可google一下
如在连接字段上建立索引,上述SQL语句应该是最快的
第三种比较快,但要看你表中数据记录的具体情况,有时第一种反而会快。
你可以具体试一下,另外用EXPLAIN可以看一下执行计划。mySQL 官方参考手册
http://dev.mysql.com/doc/refman/5.1/zh/index.html
看执行计划
最好,上面2句等同于左联接。SELECT a.dk_name,b.dia_title,b.dia_time, b.dia_content from diary b inner join dia_kind a on a.dk_id=b.dia_dk_id and b.dia_id=7 这样写也可以。
如2楼所说,还要看索引。