首页 > MySQL中内连接与一般连接中的问题

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;

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


功能是一样的.我习惯用第二种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的可读性好一些

【热门文章】
【热门文章】