学习如何加入MySQL
亲爱的各位,我是网络编程的新手,到现在为止,我还学习了MySQL语法。学习如何加入MySQL,mysql,left-join,Mysql,Left Join,亲爱的各位,我是网络编程的新手,到现在为止,我还学习了MySQL语法。 现在我开始使用LEFT JOIN方法。我知道这种方法用于在两个或多个表之间进行规范化。我在SO中发布了一个问题,然后我收到了一个令我困惑的问题。我已经修改了这个答案,但我仍然感到困惑,因为它只对一个表使用左连接。LEFT JOIN是否可以在一个表中使用?您可以LEFT JOIN一个表本身,就像您可以一个表本身连接一样。您的目的通常会有所不同,因为左连接的具体特征是确保在右侧不存在对应行时输出中有一行;您可以通过检查行的“其他
现在我开始使用
LEFT JOIN
方法。我知道这种方法用于在两个或多个表之间进行规范化。我在SO中发布了一个问题,然后我收到了一个令我困惑的问题。我已经修改了这个答案,但我仍然感到困惑,因为它只对一个表使用左连接。LEFT JOIN
是否可以在一个表中使用?您可以LEFT JOIN
一个表本身,就像您可以一个表本身连接一样。您的目的通常会有所不同,因为左连接的具体特征是确保在右侧不存在对应行时输出中有一行;您可以通过检查行的“其他部分”(通常来自右侧表的部分)的NULL
来选择那些以这种方式特别选择的行
例如,考虑一个包含列ID
、主键、Name
、类别和成本的表Product
;您想要了解其类别中最便宜的产品的信息。然后…:
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
是一个“表与自身的左联接”的示例,它将回答“you want”规范(如果一个类别中有多个项目具有相同的最低成本,那么您将获得所有项目——查询实际上为您提供了这些项目,因此它们的类别中没有任何项目更便宜,也没有对相同成本项目的检查;-)