1

MySQL データベースから 2 つ以上の文字列を追加する必要があるため、CONCAT()関数を使用しました。

classesこれは、 PHP クラスを格納する最初のテーブルです。

class_id  class_name
--------  ----------
       1  accountant
       2  attendance

methods各クラスのメソッドを格納する別のテーブル。

class_id  method_name            
--------  -----------------------
       1  __construct            
       1  add_expenses

       2  __construct            
       2  attendance_report

そして、連結のためのクエリを書きます。

SELECT 
  `cc`.`class_id`,
  `cc`.`class_name`,
  CONCAT(`cm`.`method_name`, ',') AS `method_name` 
FROM
  `classes` AS `cc` 
  LEFT JOIN `methods` AS `cm` 
    ON `cm`.`class_id` = `cc`.`class_id` 
GROUP BY `cc`.`class_name`;

これは機能していません。私の期待される出力は

class_id  class_name      method_name 
--------  --------------  ------------
       1  accountant      __construct, add_expenses, .... n
       2  attendance      __construct, attendance_report, .... n

何か案は?

4

1 に答える 1

3

使用する

GROUP_CONCAT

それ以外の

CONCAT

GROUP_CONCAT(cm.method_name)デフォルトで使用されるセパレーターとしてカンマを渡す必要はありません。

于 2011-06-30T12:46:30.237 に答える