首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从SQL中没有联接的多个表中进行选择

从SQL中没有联接的多个表中进行选择
EN

Stack Overflow用户
提问于 2021-06-27 21:07:23
回答 1查看 98关注 0票数 0

完成SQL新手,试图理解以下TPC查询:

代码语言:javascript
复制
select
        l_orderkey,
        sum(l_extendedprice * (1 - l_discount)) as revenue,
        o_orderdate,
        o_shippriority
from
        customer,
        orders,
        lineitem
where
        c_mktsegment = ':1'
        and c_custkey = o_custkey
        and l_orderkey = o_orderkey
        and o_orderdate < date ':2'
        and l_shipdate > date ':2'
group by
        l_orderkey,
        o_orderdate,
        o_shippriority
order by
        revenue desc,
        o_orderdate;
:n 10

我的印象是,您只能在连接后从不同的表中进行选择。不过,我在这里没有看到任何连接。这是隐含的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-27 21:22:46

逗号是CROSS JOIN的过时语法。这与笛卡尔积本质上是一样的(尽管FROM子句中的范围规则有点不同)。

WHERE子句中的筛选条件恰好将这个笛卡尔积转换为一个内部联接,但这是FROM类之后过滤的一个函数。

您应该忘记,您已经学会了这种语法是有效的。使用显式JOIN语法,即使对于CROSS JOIN也是如此。几十年来,JOIN一直是SQL语法的一部分--字面上来说--而且添加它是有很好的理由的。

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

https://stackoverflow.com/questions/68155282

复制
相关文章

相似问题

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