2012-10-25 53 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