为什么这个SQL工作? (我不认为它应该!)

时间:2015-10-06 17:04:58

标签: sqlite

前一段时间,使用SQLite,我写了一大堆SQL作为视图的基础。现在我再看一遍,我看不出它是如何起作用的,但它已经很好地工作了很长时间。 sql的要点如下。 我在 x y 中获得正确<结果正确值,即使 x < / strong>使用条款......

select avg(result) from TableB

...当tableB不包含名为result的字段时。

为什么这段代码没有失败?

CREATE TABLE TableB 
( TheKey TEXT);

 CREATE TABLE TableA 
 (  TheID TEXT,
  TheKey TEXT,
  result INTEGER  );

SELECT
    TheID,
    avg(result) as y,
    (select avg(result) from TableB as T where T.TheKey = TableA.TheKey) as x,
FROM 
    TableA
LEFT JOIN   
    TableB  
ON TableA.TheKey = TableB.TheKey
GROUP BY 
    TheID, TableA.TheKey

1 个答案:

答案 0 :(得分:1)

由于您有FileUtils.cp files, "#{dest}/doc", verbose: true 两个表都在选择列表的范围内。

FROM TableA LEFT JOIN TableB会失败。

在这种情况下,

avg(TableB.result)avg(result)相同。