mysql 使用 join 还是 "," 进行多表查询???

表结构:

student:
--------------------------
sid   name      sex
1     cxl       male
2     yueshu    female
....
--------------------------

achievement:
--------------------------
aid    sid    cid    score
1      1      1      80
2      2      2      60
....
--------------------------

join 连接 :

select s.sid , s.name , a.score from student as s left join achievement as a on s.sid = a.sid;

, 连接 :

select s.sid , s.name , a.score from student as s , achievement as a where s.sid = a.sid;

上面两种写法得出的结果都是一样的,不知道哪个性能更好??

有没有 关于sql优化的中文教程网站 ?求推荐

阅读 11.9k
3 个回答

其实select s.sid , s.name , a.score from student as s , achievement as a where s.sid = a.sid;
等同于select s.sid , s.name , a.score from student as s inner join achievement as a on s.sid = a.sid;
通过explain sql 查看查询情况

left join是左链接,使用逗号链表查询是内连接,是有一定的区别的,左链接是用左边的表作为主表来查询的,当右表没有数据的时候,还是有会查出来左表记录的,而内连接如果右表没有数据,那么也就查不出来左表这条数据了。

其实转过来意思一样的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏