我是否了解Left Join应该做什么?
我有一个查询。将其称为查询A。它返回19条记录。
我还有另一个查询,查询B。它返回1400条记录。
我将查询B作为左联接插入到查询A中,因此查询A变为:
SELECT *
FROM tableA
LEFT JOIN (<<entire SQL of Query B>>) ON tableA.id = tableB.id
现在,左联接表示表A中的所有内容,仅表示它们匹配的表B中的记录。因此,无论如何,此混合查询返回的内容不应超过原始查询A返回的19条记录。我实际得到的是1,000条记录。
我是否从根本上误解了LEFT JOIN的工作原理?
您并没有完全误解LEFT JOIN
,正如它所暗示的那样。如果您在A中只有一行,而在B中只有1000行,则它引用了A中该单行的ID;您的结果将是1000行。您忽略了这种关系可能是一对多的关系。“左”表/子查询的大小(取决于WHERE
条件)是结果数的下限。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句