首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将3层子查询折叠为联接语句

将3层子查询折叠为联接语句
EN

Stack Overflow用户
提问于 2016-10-04 19:37:24
回答 3查看 38关注 0票数 0

我似乎有一个问题,将我的3层子查询折叠成一个join语句。这是代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Select pid
from orders
where aid in (
    select aid
    from orders
    WHERE cid IN (
        select cid
        from customers
        where city = 'Kyoto'
                 )
             );

数据库im目前正在与

编辑:我试图显示通过在京都为客户至少订购一次订单的代理商订购的产品的in。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-04 19:42:41

试试这个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Select o.pid 
from orders o 
inner join orders oo on oo.aid = o.aid
inner join customers c on c.cid = oo.cid and c.city = 'Kyoto'

我认为别名(oooc)是必要的,以使其按预期工作。

票数 0
EN

Stack Overflow用户

发布于 2016-10-04 19:44:23

为什么您要多次从订单表中选择,而且我认为您的代理和产品表在这里没有用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT orders.pid 
FROM ORDERS orders 
INNER JOIN CUSTOMERS customers ON customers.cid = orders.cid 
AND customers.city = 'Kyoto'
票数 1
EN

Stack Overflow用户

发布于 2016-10-04 19:49:08

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select A.pid 
from orders as A
    INNER jOIN
Orders as B
on A.aid=B.aid
    INNER JOIN 
customers as C
on B.cid=C.cid
where C.city = 'Kyoto'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39865029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文