0

medOrderという名前のテーブルがあります。この表には注文があります。1つの注文には多くの願いがあります。1つのレコードとすべてのウィッシュの名前を表示するクエリを作成しようとしましたが、クエリが可能な限り優れているとは思いません。

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;

データスキーマ

4

1 に答える 1

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

于 2012-10-25T23:27:48.157 に答える