sql 左连接查询效率问题
--查询1:
select C.id,S1.* from (select * from A left join B on A.id=B.id)S1 left join C on S1.id=C.id
--查询2:
select * from A left join B on A.id=B.id left join C on A.id=C.id
--查询3:
select C.id,S1.* from (select * from A left join (select * from B where name = 1)B on A.id=B.id)S1 left join C on S1.id=C.id
--查询4:
select C.id,S1.* from (select * from A left join B on A.id=B.id and B.name=1)S1 left join C on S1.id=C.id
--查询5:
select * from A left join B on A.id=B.id left join C on A.id=C.id where B.name=1
(为方便使用了*,大家不必在意)
问题1:1和2 这两种查询方式哪种效率更高些?
问题2:3,4,5这种情况,当连接的右表需要做条件筛选的时候,在哪里加条件更好?
问题3:像查询1 ,外层取内层的字段的时候,使用S1.* 会不会依然会降低查询效率?
提前感谢各位的指教!