同事遇到mysql查询问题:
|
|
左连接查询多张表后获取查询记录条数。 sql运行报错:Duplicate column name 'id'.
原因
根据错误信息,可以看出:查询记录条数的时候,有两列名称都为 'id'。 只执行里面的左连接查询
|
|
可以看到查询结果中确实有多个列名为'id', 把 'select ' 改为 'select a.'即可。
引申疑问
我对'count(0)'的实现细节不是很清楚,于是我在网上搜索了一下
总结
-
表无任何索引,则执行全表扫描。
-
表有主键,则使用主键进行扫描。
-
表有二级索引,则使用二级索引进行扫描。
-
表有多个二级索引,则使用key_len小的二级索引进行扫描。