查询:
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子句中呢?
发布于 2010-03-10 23:23:37
您可以在where子句中进行联接,但最好使用您所拥有的语法。
查询示例:
SELECT
c.Name,
bc.CategoryName
FROM [Categories] c
[Business_Categories] bc
WHERE
c.BusinessCategoryID = bc.BusinessCategoryID发布于 2010-03-10 23:25:54
ON子句有点像WHERE子句,因为它过滤结果,但是它是编写查询的一种更有表现力的方法,因为您明确地显示这两个表是以非常特定的方式关联的。您本可以编写WHERE子句,它将给出相同的结果和相同的查询计划(假设优化器可以计算出来),但是为了清楚起见,建议使用联接。
在本例中,这并没有太大的区别,但是如果您对多个表进行了更复杂的查询,使用JOIN语法,您可以看到哪些表是相关的,哪些字段是相关的。您还可以清楚地看到用于筛选结果的联接和WHERE子句之间的区别。如果您在WHERE子句中编写了所有内容,那么查看查询的意图就会变得更加混乱。
https://stackoverflow.com/questions/2421430
复制相似问题