1

私が遭遇している問題は、list_items.item_idが複数あることです(2つあります)。グループconcatは、すべての情報をまとめているだけであり、親テーブルの個々の行ごとにまとめているわけではないようです。これは、GROUP_CONCATを使用した最初のロデオです。私が達成したいと思っているのは、結合情報が連結された各親アイテムです。助けていただければ幸いです。

SELECT list_items.item_id, sub_cats.cat_name as subcatname, 
main_cats.cat_name maincatname, main_title,fabric,other,care,item_main_cat,item_sub_cat,
GROUP_CONCAT(sub_id) as subidgrp,
GROUP_CONCAT(price) as pricegrp,
GROUP_CONCAT(item_size) as itemszgrp,
GROUP_CONCAT(item_color) as itmcolorgrp,
GROUP_CONCAT(img_name) as imgnmgrp,
GROUP_CONCAT(item_quantity) as itmqntygrp
from list_items LEFT JOIN item_size_etc ON      
list_items.item_id = item_size_etc.parent_id LEFT JOIN main_cats on     
list_items.item_main_cat=main_cats.cat_id LEFT JOIN sub_cats on 
list_items.item_sub_cat=sub_cats.cat_id where list_items.active='Y'  
4

2 に答える 2

3

集計関数 (COUNT、SUM、MAX など) のデフォルトの動作は、テーブル全体を 1 つの「グループ」として扱うことです。

各グループを特定の列の個別の値に対応させる、つまり各項目の小計を取得するには、GROUP BY 句を追加する必要があります。

たとえば、これをクエリの最後に追加します。

...
GROUP BY list_items.item_id
于 2013-01-23T20:53:10.950 に答える
3

GROUP_CONCAT()は集計関数ですGROUP BY。これは、句の存在が正しく機能することを期待することを意味します。MySQL は (他の RDBMS とは異なり) 内容に寛容であるためGROUP BY、クエリは構文的には有効ですが、正しい結果は得られません。

を追加するだけで目的の結果が得られる場合があります、リストGROUP BY list_items.item_idのすべての列を.SELECTGROUP BY

SELECT
  list_items.item_id, 
  sub_cats.cat_name as subcatname, 
  main_cats.cat_name maincatname,
  main_title,
  fabric,
  other, 
  care,
  item_main_cat,
  item_sub_cat,
  GROUP_CONCAT(sub_id) as subidgrp,
  GROUP_CONCAT(price) as pricegrp,
  GROUP_CONCAT(item_size) as itemszgrp,
  GROUP_CONCAT(item_color) as itmcolorgrp,
  GROUP_CONCAT(img_name) as imgnmgrp,
  GROUP_CONCAT(item_quantity) as itmqntygrp
FROM 
  list_items
  LEFT JOIN item_size_etc ON  list_items.item_id = item_size_etc.parent_id
  LEFT JOIN main_cats on  list_items.item_main_cat=main_cats.cat_id
  LEFT JOIN sub_cats on list_items.item_sub_cat=sub_cats.cat_id 
WHERE list_items.active='Y'  
GROUP BY
list_items.item_id, 
  sub_cats.cat_name as subcatname, 
  main_cats.cat_name maincatname,
  main_title,
  fabric,
  other, 
  care,
  item_main_cat,
  item_sub_cat
于 2013-01-23T20:53:16.877 に答える