2013-06-27 90 views
0

你好我必須參加兩個查詢形成的結果集: -連接兩個查詢形成的結果集

1:

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 

兩個ord​​erId是常見的h這可能會加入嗎?

+1

你可以發表你的表定義?很難確定包含哪些列,加上頂部的查詢是錯誤的。您是否閱讀過連接查詢中的基礎知識?如果不嘗試訪問這個http://www.w3schools.com/sql/sql_join.asp –

回答

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 
+0

你確定這解決了你的問題?似乎對我仍然是錯誤的。 –

+1

@Þaw對不起,我忘了添加完整的查詢。現在它工作... –

+0

親愛的Downvoter,當你接受你自己的答案時,它不會爲你的狀態添加聲望。 –

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 
+1

@感謝您的旅遊嘗試.. –