亲爱的各位,我是web编程的新手,直到现在我还在学习MySQL语法。现在,我开始使用LEFT JOIN方法。我知道这个方法用于在两个或多个表之间进行标准化。我在SO中发布了一个问题,然后我收到了一个Answer,这让我感到困惑。我已经修改了这个答案,但我仍然感到困惑,因为它只对一个表使用了LEFT JOIN。LEFT JOIN是否可以在一个表中使用?
发布于 2010-09-07 12:23:54
您可以对表本身执行LEFT JOIN操作,就像您可以对表执行JOIN操作一样。您的目的通常会有所不同,因为LEFT JOIN的特定特征是在右侧没有对应的行时确保输出中有一行;当然,您可以通过检查行的“其他部分”(通常来自右侧表的部分)的NULL来选择那些以这种方式特别选择的行。
例如,假设有一个表Product,其中包含列ID、主键、Name、Category和Cost;您需要有关其类别中最便宜的产品的信息。然后...:
SELECT P1.Name, P1.Category, P1.Cost
FROM Product AS P1
LEFT JOIN Product AS P2
ON (P1.Category = P2.Category and P1.Cost > P2.Cost)
WHERE P2.ID IS NULL是一个“表与自身的左连接”的示例,它将满足“您想要的”规范(如果一个类别中有多个项目具有相等的最低成本,您将获得所有项目--查询实际上给出的项目是这样的:类别中没有任何项目更便宜,并且没有检查相同成本的项目;-)。
https://stackoverflow.com/questions/3655716
复制相似问题