MySQL で各食事のカンマ区切りの料理 ID と名前を取得するにはどうすればよいですか?

DDD
リリース: 2024-11-09 10:21:02
オリジナル
318 人が閲覧しました

How to Retrieve Comma-Separated Dish IDs and Names for Each Meal in MySQL?

MySQL の複数の行からカンマ区切りの値を取得する

このシナリオでは、DISH と DISH_HAS_DISHES という 2 つのテーブルがあり、そのうちの 1 つは DISH と DISH_HAS_DISHES です。 -対多の関係。 DISH には料理が含まれますが、DISH_HAS_DISHES には食事と料理の関係が格納されます。目標は、各食事に料理 ID と料理名のカンマ区切りリストが含まれる形式でデータを取得することです。

これを実現するには、MySQL の GROUP_CONCAT 関数を利用できます。この関数を使用すると、複数の行の値を、指定した区切り文字で区切って単一の文字列に連結できます。これを使用して要件に対処する方法は次のとおりです。

SELECT m.meal_Id,
        GROUP_CONCAT(dish_id) AS dish_ids,
        GROUP_CONCAT(dish_name) AS dish_names
FROM DISH_HAS_DISHES m
JOIN DISH d ON (m.dish_id = d.dish_id)
GROUP BY meal_Id
ログイン後にコピー

このクエリ内:

  • GROUP_CONCAT(dish_id) は、料理 ID をカンマで区切られた単一の文字列に連結します。
  • GROUP_CONCAT(dish_name) も同様に料理名を連結します。

GROUP BY 句は、結果を Meal_Id ごとにグループ化し、カンマ区切りの値が次のようになります。

このクエリの出力は、次の 3 つの列を持つテーブルになります。

  • meal_Id: 食事 ID。
  • dish_ids: カンマ- 食事に関連付けられた料理 ID のリスト。
  • dish_names: 食事に関連付けられた料理名のカンマ区切りリスト。

これにより、目的の結果が得られます。ここで、各食事にはそれぞれの料理 ID と名前が単一のカンマ区切り文字列で示されます。

以上がMySQL で各食事のカンマ区切りの料理 ID と名前を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート