【发布时间】:2011-03-03 21:45:37
【问题描述】:
我需要成对选择其中包含相同产品的订单。 ORDER_ITEMS 包含产品和一个外键来引用父 ORDER 行。订单行需要不同。
我已经设法列出了配对,计算其中有多少匹配产品,但这只是一个相似性计数。我需要从包含不同产品的配对中排除订单。
其中可以包含 Oracle 特定的内容。
这两个表是:
Order(order_id, customer_id...)
Order_Item(item_id, order_id FK, product_id,...)
我需要让所有 Order_Item 子项都匹配 product_id-s 的 order_id-s。
例如。在订单中
{ (ord1, cust1)
(ord2, cust2)}
在 Order_Items 中
{ (item1, ord1, product_id=3),
(item2, ord1, product_id=6),
(item3, ord2, product_id=3),
(item4, ord2, product_id=6) }
所以基本上,两个人买了完全相同的两件东西。他们是一对。未列出订购产品不完全匹配的订单。
【问题讨论】:
-
所以写下你的查询,也许有人会帮助你。我们不会做你的功课。
-
我们需要两个表的 CREATE TABLE 语句来知道有哪些列。样本数据和基于数据的预期输出将帮助我们能够为您提供帮助。什么版本的 Oracle?
-
将问题提出来是否更好:列出多个订单中使用的产品以及订单信息?
-
不,我不想列出产品,我想列出具有匹配产品的订单(从订单中我会去真正成为客户,但基本想法可以在这两个上完成表,不需要在这里写整个架构):)
-
这两个表是 Order(order_id, customer_id...) 和 Order_Item(item_id, order_id FK, product_id,...)。我需要使用具有匹配 product_id-s 的所有 Order_Item 子项的 order_id-s。前任。在 Orders { (ord1, cust1) and (ord2, cust2)} 和 Order_Items { (item1, ord1, product_id=3), (item2, ord1, product_id=6), (item3, ord2, product_id=3), ( item4, ord2, product_id=6) } 所以基本上 2 个人买了完全相同的 2 件东西。他们是一对。那些订购的产品不完全匹配的订单不会被列出。