查询:
SELECT c.Name
FROM [Catagories] c
SELECT c.Name,
bc.CategoryName
FROM [Catagories] c
INNER JOIN [Business_Categories] bc ON c.BusinessCategoryID = bc.BusinessCategoryID
问题:为什么我不必将其放在WHERE
条款中?
答案 0 :(得分:1)
您可以在where子句中进行连接,但最好使用您拥有的语法。
查询示例:
SELECT
c.Name,
bc.CategoryName
FROM [Categories] c
[Business_Categories] bc
WHERE
c.BusinessCategoryID = bc.BusinessCategoryID
答案 1 :(得分:0)
ON子句有点像WHERE子句,因为它过滤结果,但它是一种更有表现力的方式来编写查询,因为您明确地显示这两个表以非常特定的方式相关。您可以编写一个WHERE子句,它会给出相同的结果和相同的查询计划(假设优化器可以计算出来),但为了清楚起见,建议使用JOIN。
在这种情况下它没有太大区别,但是如果你有一个更复杂的查询与许多表,使用JOIN语法,你可以看到哪些表相关和在哪些字段。您还可以清楚地看到JOIN和用于过滤结果的WHERE子句之间的区别。如果你在WHERE子句中编写所有内容,那么查看查询的意图会更加令人困惑。