2012-10-25 77 views
0

我有一個名爲medOrder的表。在這張表中我有命令。一個訂單有許多願望。我試圖寫一個查詢,顯示一個記錄和所有的願望的名字,但我不認爲這個查詢是如此好。許多數據到一個記錄MYSQL

SELECT m.ordcode as koden, w.wish, r.meaName as rnamn, r.meaImg as bild, 
     r.meaPrice as pris, k.catName as cname from cats k, meals r, wishes w, 
     meaOrder m 
    join orders c on c.ordNR='7265' 
    WHERE m.ordNR=c.ordNR AND m.meaID=r.meaID AND m.wishesID=w.id 
     AND r.catID=k.catID 
    ORDER BY m.ordcode DESC; 

data schema

+0

使用PHP進行編程 – TheZozoOwner

+1

您應該更新有關您的模式的詳細信息以及它不適用於當前查詢的問題。 – dan

+0

我目前的查詢工作正常,但不像我想要的。在meaOrder中,我有很多行的訂單,只是因爲一個訂單有許多願望,所以我想要一個顯示一行的訂單的查詢,並顯示連接到訂單的所有願望。 http://i.imgur.com/irTua.png – TheZozoOwner

回答

1

嘗試此查詢:

SELECT koden, GROUP_CONCAT(wish) wish, rnamn, bild, pris, cname 
FROM 
(
SELECT m.ordcode as koden, w.wish, r.meaName as rnamn, r.meaImg as bild, 
     r.meaPrice as pris, k.catName as cname from cats k, meals r, wishes w, 
     meaOrder m 
    join orders c on c.ordNR='7265' 
    WHERE m.ordNR=c.ordNR AND m.meaID=r.meaID AND m.wishesID=w.id 
     AND r.catID=k.catID 
) T 
GROUP BY koden, rnamn, bild, pris, cname 
ORDER BY koden DESC 

此查詢確實GROUP BY上的所有重複列,但串聯值的wish非重複列。

+0

錯誤代碼:1248.每個派生表都必須有自己的別名 – TheZozoOwner

+0

對不起,請再試一次! – RGO

+0

我試圖通過「ordcode」(koden)標記每一個訂單,然後嘗試做GROUP BY koden,但我沒有順利,它只顯示了一行。 – TheZozoOwner