今天遇到了如下的问题,在CSDN上提问
查询语句如下:
SELECT
A.CameraID, A.CryptMode, A.CameraName, B.CameraID AS LeftCameraID
FROM
C001_Camera A LEFT JOIN C002_Control B
ON
B.CameraID=A.CameraID
WHERE
(A.ControlerID IS NOT NULL AND A.ControlerID != '')
ORDER BY
CAST(A.CameraID as SIGNED INTEGER)
结果中
A.CameraID为00006,
LeftCameraID为null
可是在上面不是有B.CameraID=A.CameraID一句了吗?怎么他们两个的值不一样呀?
问题解决后我才知道这是SQL语句中最基础的一个问题,哎!
那就总结一下吧:
cross join:是笛卡儿乘积,在没有任何条件约束下就是一张表的行数乘以别一张表的行数。