この記事では、例を使用して、MySQL で GROUP_CONCAT を使用する方法について説明します。ご参考までに、詳細は以下の通りです。 現在、次の構造を持つ 3 つのテーブルがあります。 テーブルを分類: テーブル `cate` を作成します ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', `name` char(20) DEFAULT '' COMMENT 'カテゴリ名', 主キー (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='記事カテゴリテーブル'; 記事表: テーブル「記事」を作成します( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', `title` varchar(50) デフォルト '' `cate_id` int(11) NOT NULL DEFAULT '0' COMMENT 'カテゴリID', 主キー (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='Article table'; article_extendテーブル: テーブル `article_extend` を作成します ( `id` int(10) 符号なし NOT NULL AUTO_INCREMENT, `article_id` int(10) unsigned DEFAULT '0' COMMENT '記事ID', `name` varchar(255) DEFAULT '' COMMENT 'オーディオ、画像など', 主キー (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='添付ファイル テーブル'; 3 つの表のデータは次のとおりです。 テーブルを分類: 記事表: article_extendテーブル: ここで問題が発生します。テーブル接続を介してクエリを実行し、記事 ID 1 の記事データを照会して、記事のタイトル、記事のカテゴリ、記事名を表示します。 選択 a.id AS 援助、 a.title は atitle として、 c. NAME AS cname、 ae.NAME AS aname から 記事として 左結合 cate AS c ON a.cate_id = c.id article_extend を ae として LEFT JOIN し、 a.id = ae.article_id を ON します。 どこ 1. 文字列を1行に並べます。 結果は次の通りで、2 つのデータが表示されます。 今、私は 1 つの結果、つまり名前フィールドだけを結合したいのですが、どうすればいいでしょうか? これは GROUP_CONCAT でのみ可能です: 選択 a.id AS 援助、 a.title は atitle として、 c. NAME AS cname、 GROUP_CONCAT(ae.NAME SEPARATOR '-') AS aname から 記事として 左結合 cate AS c ON a.cate_id = c.id article_extend を ae として LEFT JOIN し、 a.id = ae.article_id を ON します。 どこ 1. 文字列を1行に並べます。 結果は次のとおりです。 さて、記事 ID で 1 つずつ検索するのではなく、すべてを取得したいのですが、複数の記事名を結合する必要がある場合、どうすればよいでしょうか。 選択 a.id AS 援助、 a.title は atitle として、 c. NAME AS cname、 ae.allname から 記事として 左結合( 選択 ae.記事ID、 GROUP_CONCAT(ae.NAME) AS allname から 記事を拡張する AS ae グループ化 ae.記事ID ) AS ae ON a.id = ae.article_id cate を c として LEFT JOIN し、 a.cate_id = c.id とします。 結果は次のとおりです。 MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL クエリ スキル」、「MySQL 共通関数の概要」、「MySQL ログ操作スキル」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキル」、および「MySQL データベース ロック関連スキルの概要」 この記事が皆様のMySQLデータベース設計に役立つことを願っています。 以下もご興味があるかもしれません:
|
<<: Linux MySQL ルートパスワードを忘れた場合の解決方法
>>: VMware15 の Deepin インストール詳細チュートリアル (画像とテキスト)
Docker コンテナに入った後、コンテナを終了すると、コンテナは Exited 状態に変わります。...
レンダリング ネットで関連情報を調べたところ、現在のダイナミックグラデーションボーダーの実装方法のほ...
.net 開発に関しては、Microsoft の SQL Server データベースに精通しており、...
VMware のインストールパッケージのインストールダウンロードアドレス: https://www....
序文以前フロントエンドを勉強していたとき、メタタグに対する私の理解はこの一文だけでした。 <メ...
Web サービスは、アプリケーション間の通信に関係します。 WSDL は、XML ベースの Web ...
目次序文解決:ステップ1ステップ2序文環境: VMware Workstation 上に Linux...
目次スケルトンスクリーンとは何ですか?デモデザインのアイデア具体的な実装スケルトンスクリーンとは何で...
目次配列分割代入オブジェクトの分解代入分割割り当ての適用変数の値の交換関数から複数の値を返すマップ構...
シェル スクリプト言語は、すべてのプログラミング言語の中で最も単純な言語であるため、資格のある Li...
EXPLAIN ステートメントは、MySQL がステートメントを実行する方法に関する情報を提供します...
Web サービスは、アプリケーション間の通信に関係しています。SOAP は、Web サービス間の X...
この章では、dockerの下にあるSpring BootプロジェクトでRedisを操作し始めます。準...
目次序文jQuery 以外の場合は何を使うのでしょうか? DOMとイベントAJAX リクエスト要約す...