假设我有一个名为Batch的表,其中包含每个Batch的名称和状态。状态是数字。另一个名为BatchStatus的表,状态编号为人类可读的字符串。因此,下面的JOIN以人类可读的形式列出所有批次名称及其状态:
SELECT b.Name, s.Description from Batch b JOIN BatchStatus s on b.StatusNbr = s.StatusNbr
我在生产代码中看到了上面的查询,用Google搜索了JOIN做了什么,并理解查询执行了我上面描述的操作。如果我自己编写查询(昨天,在我了解JOIN之前),我会用一个简单的where子句编写它:
select b.Name, s.Description from Batch b, BatchStatus s where b.StatusNbr = s.StatusNbr
这两个查询是否相同?如果是这样,为什么需要特殊的JOIN语法,当一个简单的WHERE子句已经做同样的事情?
谢谢!