首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql多查询

mysql多查询
EN

Stack Overflow用户
提问于 2010-03-10 23:20:59
回答 2查看 346关注 0票数 2

查询:

代码语言:javascript
复制
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子句中呢?

EN

回答 2

Stack Overflow用户

发布于 2010-03-10 23:23:37

您可以在where子句中进行联接,但最好使用您所拥有的语法。

查询示例:

代码语言:javascript
复制
SELECT 
  c.Name,
  bc.CategoryName
FROM [Categories] c
     [Business_Categories] bc
WHERE
  c.BusinessCategoryID = bc.BusinessCategoryID
票数 1
EN

Stack Overflow用户

发布于 2010-03-10 23:25:54

ON子句有点像WHERE子句,因为它过滤结果,但是它是编写查询的一种更有表现力的方法,因为您明确地显示这两个表是以非常特定的方式关联的。您本可以编写WHERE子句,它将给出相同的结果和相同的查询计划(假设优化器可以计算出来),但是为了清楚起见,建议使用联接。

在本例中,这并没有太大的区别,但是如果您对多个表进行了更复杂的查询,使用JOIN语法,您可以看到哪些表是相关的,哪些字段是相关的。您还可以清楚地看到用于筛选结果的联接和WHERE子句之间的区别。如果您在WHERE子句中编写了所有内容,那么查看查询的意图就会变得更加混乱。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2421430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档