转换SQL,但返回不同的结果

时间:2014-02-13 12:49:52

标签: sql

这是最初的SQL,效果非常好。

select a.sessionid
from session a
left
outer
join applicationinfo b
on a.sessionid=b.sessionid
left
outer
join license c
on a.sessionid=c.sessionid
limit 10
;
下面的

是转换后的SQL

SELECT s.sessionid
FROM  
( SELECT *
  FROM session  a
  LEFT
  OUTER
  JOIN applicationinfo  b
  ON (a.sessionid = b.sessionid)
)s
LEFT
OUTER
JOIN license c
ON (s.sessionid = c.sessionid)
limit 10
;

第二个SQL将获得10个NULL。由于这些表在sessionid字段上保持连接。假设在第二个SQL中,s.sessionid不应该为NULL。

有人能告诉我这两个SQL无法返回相同结果的原因。感谢。

0 个答案:

没有答案