MySQL LEFT JOIN で GROUP_CONCAT を使用して、各チケットに対応するソリューションを取得するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-10-28 06:01:01
オリジナル
480 人が閲覧しました

How do I use GROUP_CONCAT with MySQL LEFT JOIN to retrieve each ticket's corresponding solutions?

MySQL LEFT JOIN を使用した GROUP_CONCAT: 対応するソリューション エントリの検索

MySQL のようなリレーショナル データベースを扱う場合、複数のテーブルにわたって集計されたデータを取得するには注意が必要です考慮。 GROUP_CONCAT 関数は、複数の行のデータを 1 つの文字列に連結するための貴重なツールです。

このシナリオの目標は、2 つのテーブル「チケット」と「ソリューション」から、すべてのチケットとそれに関連付けられたソリューションを取得することです。 「ticket_id」列でリンクされています。ただし、提供された SELECT ステートメントは、複数のチケットのソリューションを 1 つの行にマージしています。

この問題を解決するには、GROUP_CONCAT 関数内でサブクエリまたは相関サブクエリを使用する必要があります。ここでは 2 つのアプローチを示します。

サブクエリの使用:

<code class="mysql">SELECT t.*,
          x.combinedsolutions
     FROM TICKETS t
LEFT JOIN (SELECT s.ticket_id,
                  GROUP_CONCAT(s.solution) AS combinedsolutions
             FROM SOLUTIONS s 
         GROUP BY s.ticket_id) x ON x.ticket_id = t.ticket_id</code>
ログイン後にコピー

相関サブクエリの使用:

<code class="mysql">SELECT t.*,
          (SELECT GROUP_CONCAT(s.solution)
             FROM SOLUTIONS s 
            WHERE s.ticket_id = t.ticket_id) AS combinedsolutions
     FROM TICKETS t</code>
ログイン後にコピー

このサブクエリのアプローチを採用することで、結果セットの各行にはチケット ID に対応するソリューションのみが含まれるようになります。サブクエリは、チケット ID に基づいてソリューションを集約し、それらを 1 つの文字列に連結し、その後、「LEFT JOIN」を使用してメインの「Tickets」テーブルと結合します。

この改訂されたアプローチにより、各チケット行が独自のものを持つことが保証されます。一連のソリューションを使用して、目的の出力を提供します:

id: 1
requester_name: John Doe
description: My computer is not booting.
combinedsolutions: I tried to solve this but was unable to. I will pass this on to Technician B since he is more experienced than I am.,I reseated the RAM and that fixed the problem.

id: 2
requester_name: Jane Doe
description: My browser keeps crashing.
combinedsolutions: I was unable to figure this out. I will again pass this on to Technician B.,I re-installed the browser and that fixed the problem.
ログイン後にコピー

このアプローチを適用すると、すべてのチケットとそれに関連するソリューションを効果的に抽出でき、データの整合性が維持され、すべてのサポート チケットとそのチケットの明確なビューが提供されます。決議。

以上がMySQL LEFT JOIN で GROUP_CONCAT を使用して、各チケットに対応するソリューションを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!