这是在工作中出现的,这真的只是一个谜......
查询一:
SELECT * FROM
SYSIBM.SYSTABLES A LEFT JOIN
SYSIBM.SYSTABLESPACE B
ON A.DBNAME = B.DBNAME
AND A.TSNAME = B.NAME
AND A.TSNAME LIKE 'HIB%'
;
此查询不按HIB%
条件过滤,这与查询应该执行的操作相反。我认为将这些标准放入JOIN
应该会产生相同的结果。
查询 2 按预期工作:
SELECT * FROM
(SELECT * FROM SYSIBM.SYSTABLES
WHERE TSNAME LIKE 'HIB%') A
LEFT JOIN
SYSIBM.SYSTABLESPACE B
ON A.DBNAME = B.DBNAME
AND A.TSNAME = B.NAME
;
第一个查询有什么问题?