将两个查询连接起来形成一个结果集


join two queries to form an result set

你好,我必须连接两个查询才能形成一个结果集:-

第一:

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

这给了我

订单ID类别ID167 59,2168 2169 2170 2171 2172 48,2173 2174 2

第二:

select * from ecart_orders

在两个订单中Id都是通用的,这怎么可能是联接的呢?

假设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

同时我也解决了

  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