left join、inner join : on与where 区别
a表
Sql语句1: SELECT a.id, a.name, b.class FROM STUDENT AS s LEFT JOIN CLASS AS c ON s.id=c.id AND s.name="张三";id ? ? ?? name? ? ? ? ? class? 1 ????? "张三" ? ? ? ?? no.1? 2???? “李四” ? ? ? (不符合条件清空)? 3???? “王五”?????? (不符合条件清空)? 4?????? "赵六"???????? (不符合条件清空)
Sql语句2: SELECT a.id, a.name, b.class FROM STUDENT AS s LEFT JOIN CLASS AS c ON s.id=c.id AND c.? ? ? ? (不符合条件清空)? 2???? “李四” ? ? ? no.2? 3???? “王五”?????? no.2? 4?????? "赵六"???????? (不符合条件清空)
Sql语句3: SELECT a.id, a.name, b.class FROM STUDENT AS s LEFT JOIN CLASS AS c ON s.id=c.id WHERE s.name="张三";id ? ? ?? name? ? ? ? ? class? 1 ????? "张三" ? ? ? ?? no.1(不符合条件清空)(不符合条件清空)(不符合条件清空)
Sql语句4: SELECT a.id, a.name, b.class FROM STUDENT AS s LEFT JOIN CLASS AS c ON s.id=c.id WHERE c.? ? ? ?? no.1?(不符合条件清空)?(不符合条件清空)?(不符合条件清空)
Sql语句6: SELECT a.id, a.name, b.class FROM STUDENT AS s INNER JOIN CLASS AS c ON s.id=c.id AND c.? ? ? ?? no.1(不符合条件清空)(不符合条件清空)(不符合条件清空)
Sql语句8: SELECT a.id, a.name, b.class FROM STUDENT AS s INNER JOIN CLASS AS c ON s.id=c.id WHERE c.class="no.2";id ? ? ?? name? ? ? ? ? class(不符合条件清空)? 2???? “李四” ? ? ? no.2? 3???? “王五”?????? no.2(不符合条件清空)