何时何时不参加NATURAL JOIN?

时间:2016-12-11 11:26:38

标签: mysql sql database join rdbms

我已经有一段时间怀疑这个问题了,在SQL中的一些做法后我开始问自己:“什么时候才能使用getPixel(Pic1, 310, 0)”?

由于我用来练习SQL技能的数据库示例庞大,我只想在这里放两个示例查询。假设我想

  

为每个项目查找二楼各部门销售的总数量

这个问题的答案是:

NATURAL JOIN

然而,当我自己做这个问题时,我只使用了SELECT Item.ItemName, SUM(SaleQTY) FROM Item INNER JOIN Sale INNER JOIN Department ON Item.ItemID = Sale.ItemID AND Department.DepartmentID = Sale.DepartmentID WHERE DepartmentFloor = 2 GROUP BY Item.ItemName ORDER BY Item.ItemName; ,这是我的尝试:

NATURAL JOIN

它产生与样本答案完全相同的输出:

SELECT Item.ItemName, SUM(SaleQTY)
  FROM Item NATURAL JOIN SALE NATURAL JOIN Department
  WHERE DepartmentFloor = 2
  GROUP BY Item.ItemName
  ORDER BY Item.ItemName

我理解ItemName SUM(SaleQTY) Boots - snakeproof 2 Camel saddle 1 Elephant polo stick 1 Hat - polar explorer 3 Pith helmet 1 Pocket knife - Nile 2 Sextant 2` 的原因是通过代码中应用的这些条件来确保数据的完整性,并消除任何不满足它们的数据。但我仍然在想,INNER JOIN是否足以解决这个问题?

如果没有,有哪些重要规则要遵循?

0 个答案:

没有答案