今天闲着无聊,突然发现了一个以前没有注意到的小问题。
假设数据库中有两个表,分别为P和SP。其中WEIGHT为重量存在表P中,SUM为数量存在表SP中,WEIGHT和SUM的数据类型一样,下面我们分别进行两种查询:
第一种查询:
<pre name="code" class="sql">SELECT *
FROM P,SP
WHERE P.WEIGHT=SP.SUM
第二种查询:<pre name="code" class="sql">SELECT *
FROM P,SP
WHERE P.WEIGHT-SP.SUM=0
大家觉得运行结果会怎么样。这里大家很容易看出第一种方法是错误的,因为它俩是定义在不同域上面的;但是第二种方法确实正确的,因为在这种情况下,数据库金金检查它俩的数据类型是否相同,这里感觉就好奇怪,好新鲜。希望大家不要犯这样低级的错误。