mysql多个查询

时间:2010-03-10 23:21:00

标签: sql mysql join

查询:

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条款中?

2 个答案:

答案 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子句中编写所有内容,那么查看查询的意图会更加令人困惑。