null值是未知数据的意思,不能进行关联匹配的;如果想显示那行数据,用union可以

解决方案 »

  1.   

    NULL 与 NULL 的运算结果还是NULL并不是 TRUE 或者 false
      

  2.   

    好像我表述的问题不清楚……
    我的意思是为什么第三笔记录,而且最后一个栏位的值是NULL
      

  3.   

    已经说过,NULL不等于任何值请问,那如何解释
    select a.*,b.* from a,b
    得到的结果中有一行的记录是
    NULL,'SHENZHEN',NULL,'WANGWU'?
    上面那句执行后的结果应该是两个表关联后的笛卡尔表了吧?
    再加个ON a.a1=b.a1,不应该是从笛卡尔表中获得一个子集?难道会再修改子集的结果?
      

  4.   


    在aa1表中的记录 ('NULL','SHENZHEN'), 在表aa2中找不到对应的记录。 楼主估计是误以为 ('NULL','WANGWU');和它匹配,但MYSQL或者计算机不这么认为。 不认为 NULL = NULL关于NULL的运算,可以参考一下文档中的说明。
      

  5.   

    select a.*,b.* from a,b
    产生笛卡尔集,并没有 a.a1=b.a1条件
      

  6.   


    在aa1表中的记录 ('NULL','SHENZHEN'), 在表aa2中找不到对应的记录。 楼主估计是误以为 ('NULL','WANGWU');和它匹配,但MYSQL或者计算机不这么认为。 不认为 NULL = NULL关于NULL的运算,可以参考一下文档中的说明。还是有不解,不好意思!我刚刚试过,MYSQL版本5.3.1
    我在aa1.a1上创建了主键索引,NULL值自动被清空,我又重新UPDATE该笔记录为NULL,然后执行同样的语句
    显示的结果第三笔的第四个栏位就是WANGWU?
    意思是有索引和无索引时,NULL计算不一样?另外我在MYSQL5.5。13版本下,未建立索引时,执行的结果第四个栏位也是WANGWU……。
      

  7.   


    在aa1表中的记录 ('NULL','SHENZHEN'), 在表aa2中找不到对应的记录。 楼主估计是误以为 ('NULL','WANGWU');和它匹配,但MYSQL或者计算机不这么认为。 不认为 NULL = NULL关于NULL的运算,可以参考一下文档中的说明。谢谢,确实是误解了第三笔记录的产生,它应该是保留表aa1的记录+NULL,NULL产生的;不过我后来测试了发现更大困惑,详见上面描述。