我有两个桌子。 product_type列出带有产品ID的产品的名称。与共享的5种产品类型具有相同的产品ID(1),以及其他4种具有唯一产品ID(2至9)的产品类型。其他表是商品。它具有客户ID列表以及与之关联的产品模板ID。
我想获取客户正在使用的产品列表。但是,如果有两个客户使用同一产品,我将得到一个包含重复产品行的列表。我只想获得所有客户正在使用的产品的唯一列表。
产品表
#bind =127.0.0.1
客户表
Product Product_id
AML 1
EDU 1
EXM 1
JEXM 2
JFSA 3
查询:
Customer_id Product_id
112 1
113 2
114 1
115 3
116 4
117 2
Blockquote
答案 0 :(得分:0)
我想你想要
SELECT c.customer_id,
LISTAGG(p.product, ', ') WITHIN GROUP (ORDER BY p.product) as products
FROM customers c JOIN
products p
ON c.PRODUCT_ID = p.PRODUCT_ID
GROUP BY c.customer_id;
对于每个客户,这将给出该客户的产品列表。
我基于您的样本数据。我看不到您的查询和示例数据之间的关系。
编辑:
如果要让任何客户使用所有产品,只需执行以下操作:
select distinct c.product_id
from customers c;