Postgresql 哪些订单包括产品2和16?我尝试了几种方法来解决这个问题,但没有';t在psql中工作
指向my db的链接是:您可以使用两个Postgresql 哪些订单包括产品2和16?我尝试了几种方法来解决这个问题,但没有';t在psql中工作,postgresql,Postgresql,指向my db的链接是:您可以使用两个存在的条件以及相关子查询过滤订单表: SELECT O.ORDER_ID,O.PRODUCT_ID,OD.ORDER_ID,OD.PRODUCT_ID FROM ORDER_DETAILS AS O , (SELECT PRODUCT_ID,ORDER_ID FROM ORDER_DETAILS) AS OD WHERE O.PRODUCT_ID=2 AND OD.PRODUCT_ID=16; 为了提高性能,
存在的条件以及相关子查询过滤订单
表:
SELECT O.ORDER_ID,O.PRODUCT_ID,OD.ORDER_ID,OD.PRODUCT_ID
FROM ORDER_DETAILS AS O , (SELECT PRODUCT_ID,ORDER_ID FROM ORDER_DETAILS) AS OD
WHERE O.PRODUCT_ID=2 AND OD.PRODUCT_ID=16;
为了提高性能,您需要在订单详细信息(订单id、产品id)
上建立索引
在中,返回5个订单:
select o.*
from orders o
where
exists (
select 1
from order_details od
where od.order_id = o.order_id and od.product_id = 2
)
and exists (
select 1
from order_details od
where od.order_id = o.order_id and od.product_id = 16
)
您可以使用两个具有相关子查询的存在
条件筛选订单
表:
SELECT O.ORDER_ID,O.PRODUCT_ID,OD.ORDER_ID,OD.PRODUCT_ID
FROM ORDER_DETAILS AS O , (SELECT PRODUCT_ID,ORDER_ID FROM ORDER_DETAILS) AS OD
WHERE O.PRODUCT_ID=2 AND OD.PRODUCT_ID=16;
为了提高性能,您需要在订单详细信息(订单id、产品id)
上建立索引
在中,返回5个订单:
select o.*
from orders o
where
exists (
select 1
from order_details od
where od.order_id = o.order_id and od.product_id = 2
)
and exists (
select 1
from order_details od
where od.order_id = o.order_id and od.product_id = 16
)
你的预期结果是什么?你的预期结果是什么?