-
where条件是在临时表生成好后,再对临时表进行过滤的条件。和from对应。
-
on是在生成临时表的时候过滤掉条件,和join是对应的
-
在左连接中,不管on后面跟什么条件,左表的数据全部查出来,因此要想过滤需把条件放到where后面
-
在内连接中,满足on后面的条件表的数据才能查出,可以起到过滤作用。也可以把条件放到where后面。
-
where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
下面两条SQL语句是可以互换的:
SELECT ecs_order_info.`order_id`,ecs_users.`user_id`,ecs_users.`user_name`
FROM ecs_order_info JOIN ecs_users ON ecs_users.`user_id`=ecs_order_info.`user_id`
AND ecs_users.`user_name`='ecshop';
SELECT ecs_order_info.`order_id`,ecs_users.`user_id`,ecs_users.`user_name`
FROM ecs_order_info JOIN ecs_users ON ecs_users.`user_id`=ecs_order_info.`user_id`
WHERE ecs_users.`user_name`='ecshop';