很久时间没写博客了,并不是没写哦,而是没有再csdn写。。。
语句一
SELECT
*
FROM
student a,
score b,
score c
WHERE a.`s_id` = b.`s_id`
AND a.`s_id` = c.`s_id` ;
语句二和三
SELECT
*
FROM
student a,
score b,
score c
WHERE a.`s_id` = b.`s_id` = c.`s_id` ;
---------------------------------------------
SELECT
*
FROM
student a,
score b,
score c
WHERE (a.`s_id` = b.`s_id` AND c.`s_id`=0) OR (a.`s_id` = b.`s_id` AND c.`s_id`=1) ;
首先我们对比一和二 这两个结果是完全不同的 语句二相当于这样子(a.s_id
= b.s_id
)= c.s_id
;会先执行括号中的语句(其实是个布尔表达式),得到的结果是1或者0,然后再用0或者1去跟c.s_id
对比得到最终的结果,其实语句二跟语句三是等效的