0

メニューラベルを含むテーブルが1つあります。これを実行すると、親ラベルとUnderMenuラベルを取得するためのクエリが必要になります。

  SELECT es.Label MenuLabel, m.Label UnderLabel 
  FROM books_menu es
  LEFT JOIN books_menu m ON es.ID = m.MenuParentID 
  WHERE es.ParentID =1 
  AND m.Type='under'
  AND es.Type='main' 
  LIMIT 0 , 30

すべてOKですが、MenuLabelはすべてのレコードに表示されます。次のようなものです。

  MenuLabel    UnderLabel
  Home         1
  Home         2
  Home         3
  Contacts     4

私が実行するとき:

  SELECT es.Label MenuLabel, GROUP_CONCAT(m.Label) AS UnderLabel 
  FROM books_menu es
  LEFT JOIN books_menu m ON es.ID = m.MenuParentID 
  WHERE es.ParentID =1 
  AND m.Type='under'
  AND es.Type='main' 
  LIMIT 0 , 30

私は得る:

      MenuLabel    UnderLabel
       Home         1,2,3,4

どうすればこれを入手できますか:

   MenuLabel    UnderLabel
   Home         1,2,3
   Contacts     4

ありがとうございました:)

4

1 に答える 1

0

あなたはGROUP BY条項を持っている必要があります:

SELECT es.Label MenuLabel, GROUP_CONCAT(m.Label) AS UnderLabel 
FROM books_menu es
LEFT JOIN books_menu m ON es.ID = m.MenuParentID 
WHERE es.ParentID =1 
      AND m.Type='under'
      AND es.Type='main' 
GROUP BY MenuLabel    
LIMIT 0 , 30;
于 2012-07-31T07:13:05.493 に答える