两个表,一是类别表,内有类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请问哪种查询好些,或还有更好吗
解决方案 »
- 谁能帮我解答一下SQL语句
- 求指定字段值自动加1的sql语句
- 求助,将 \u5c0f 这类 字符串。转换为汉字
- mysql 复杂的update
- 请教mysql集群时遇到的问题!!
- mysq中如何设置日期的默认格式呀
- 在 linux下输入"mysql"命令,进入mysql命令行,但出现“Can't connetc to local MySQL server thuough socket /var/lib/mysql/mysql.sock
- winxp下怎么没有.cnf文件?………………………………………………
- 初装MySQL,请教
- 我误删除了 user 表,如果不重新安装的话,如何恢复?用的是linux
- 关于游戏用户注册问题
- 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楼所说,还要看索引。