我似乎遇到了将我的3层子查询折叠到连接语句的问题。 下面是代码:
Select pid
from orders
where aid in (
select aid
from orders
WHERE cid IN (
select cid
from customers
where city = 'Kyoto'
)
);
编辑:我正在尝试展示通过在京都至少为客户订购一个订单的代理商订购的产品的ID
答案 0 :(得分:1)
为什么要多次从订单表中进行选择,我认为您的代理商和产品表在此处没有用处。
SELECT orders.pid
FROM ORDERS orders
INNER JOIN CUSTOMERS customers ON customers.cid = orders.cid
AND customers.city = 'Kyoto'
答案 1 :(得分:0)
试试这个:
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'
我认为必须使用别名( o , oo 和 c )才能使其按预期工作
答案 2 :(得分:0)
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'