0

大家好,我必须加入两个查询以形成结果集:-

第一个:

SELECT  
    orderId,
    GROUP_CONCAT(DISTINCT(categoryId) ORDER BY orderId SEPARATOR ', ') as catId 
FROM 
    ecart_product 
INNER JOIN ecart_orderdetail 
WHERE 
    ecart_orderdetail.productId = ecart_product.id 
group by orderId

这给了我

orderId catId
167 59, 2
168 2
169 2
170 2
171 2
172 48, 2
173 2
174 2

第二:

select * from ecart_orders

在这两个 orderId 中都很常见,这怎么可能加入?

4

2 回答 2

2

假设这orderIdecart_orders表中的 PK 并且它有productId列。
你可以试试这个:

SELECT  
    orderId,
    GROUP_CONCAT(DISTINCT(categoryId) ORDER BY orderId SEPARATOR ', ') as catId ,
    ecart_orders.*
FROM 
    ecart_product 
INNER JOIN ecart_orderdetail 
    ON ecart_orderdetail.productId = ecart_product.id 
INNER JOIN ecart_orders
    ON ecart_orders.productId = ecart_product.id    
group by orderId
于 2013-06-27T07:19:25.140 回答
0

同时我也解决了

  select * from ecart_orders Inner join(
  SELECT  
  orderId,
  GROUP_CONCAT(DISTINCT(categoryId) ORDER BY orderId SEPARATOR ', ')  as catId
  FROM   `ecart_product` INNER JOIN ecart_orderdetail
  WHERE ecart_orderdetail.productId =   ecart_product.id group by orderId) as c 
  on ecart_orders.id=c.orderId
于 2013-06-27T07:54:04.500 回答