MySQL中内连接与一般连接中的问题
PHPz
PHPz 2017-04-17 13:06:54
[MySQL讨论组]

内连接
SELECT A.name,B.address FROM A INNER JOIN B ON A.id=B.A_id;
等价于一般连接
SELECT A.name,B.address FROM A,B WHERE A.id=B.A_id;

如上,这两个语句,查询出的结果是一样的,那么这两个语句上的区别在那里?什么情况下使用内连接。而不是用一般连接?请指点~。~,那个效率好点?我们平时最多使用那个呢?

PHPz
PHPz

学习是最好的投资!

全部回复(2)
迷茫

功能是一样的.我习惯用第二种WHERE字句的表连接方法,感觉更好理解.
1万条记录的测试,在phpMyAdmin里观察执行时间和EXPLAIN信息,性能也差不多.
比如连接student,score,cource三个表,查询学生ID为1的信息:

/* WHERE字句 */
SELECT * FROM `student`, `score`, `course`
WHERE `student`.`id` = `score`.`student_id` 
AND `score`.`course_id` = `course`.`id`
AND `student`.`id` = 1;

/* INNER JOIN ON */
SELECT * FROM `student` 
INNER JOIN `score` 
ON `student`.`id` = `score`.`student_id` 
INNER JOIN `course` 
ON `score`.`course_id` = `course`.`id`
WHERE `student`.`id` = 1;
黄舟

两个语句是一样的,性能上也一样,个人觉得join的可读性好一些

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号