--TRY
SELECT 
A.CameraID,  A.CryptMode,  A.CameraName,  B.CameraID AS LeftCameraID 
FROM 
C001_Camera A  ,  C002_Control B 
where 
B.CameraID=A.CameraID 
and  
(A.ControlerID IS NOT NULL AND A.ControlerID != '') 
ORDER BY 
CAST(A.CameraID as SIGNED INTEGER)

解决方案 »

  1.   

    left join: 左边全都得有,右边有的就选出来,没有也得凑个null
      

  2.   

    左连接时,右表不存在的内容即为NULL.
      

  3.   

    CAST(A.CameraID as SIGNED INTEGER)
    -->
    CAST(A.CameraID as INTEGER)
      

  4.   

    这是很正常的,因为你用的是左连接如果你用inner join的话,就会看到你希望看到的値了
      

  5.   

    cross join:是笛卡儿乘积,在没有任何条件约束下就是一张表的行数乘以别一张表的行数。
    left join:返回“表名1”的全部行,对于“表名2”中,不满足on条件的记录用空值替换。
    rigth join:返回“表名2”的全部行,对于“表名1”中,不满足on条件的记录用空值替换。
    full join:返回两张表中的所有记录,对于不满足on条件一端的记录用空值替换。
    inner jon:只返回两张表中都满足on条件的记录
      

  6.   

    left join 右端输入无匹配时,左端仍被选择,右端取为null
    inner join 右端输入与左端匹配时,左端及右端才被选取。
      

  7.   

    左连接,把left join 换成 inner join 和 right join 看看效果,就懂这个奇妙的结果了