内连接
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的可读性好一些