请查看下面的表格:
顾客表:
一个客户可以下0、1或多个订单。请看下面的SQL查询语句:
顾客表:
ID
Name
订单表:
ID
CustomerID
一个客户可以下0、1或多个订单。请看下面的SQL查询语句:
SELECT Customer.*
FROM Customer LEFT JOIN Order ON Customer.ID=Order.CustomerID
WHERE CustomerID IS NULL
并且
SELECT Customer.*
FROM Customer LEFT JOIN Order ON Customer.ID=Order.CustomerID AND
CustomerID IS NULL
这两个查询有什么区别?开发人员什么时候会使用其中一种技术而不是另一种技术呢?
我想在线上应该有其他类似的问题,但我没有找到答案,所以提出了这个问题。
Customer.ID
和Order.ID
真的是同一个属性吗?对于任何正确设计的数据库来说都是错误的。而且CustomerID
在哪个表中?这里更有可能是想要Customer.ID = Order.CustomerID
。 - RBarryYoung