問題タブ [group-concat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
39341 参照

sql - mysqlGROUP_CONCATが重複しています

このようなfarmTOanimalテーブルから参加します。同様のfarmTotoolテーブルがあります

ビューでテーブルを結合すると、次のような結果が得られます

今、私はGROUP BY FarmIDを実行し、GROUP_CONCAT(animal)とGROUP_CONCAT(tool)を実行します。

しかし、私が本当に望んでいるのは、このような結果です。どうすればいいですか?

0 投票する
1 に答える
12461 参照

mysql - 1つの列に複数の値を持つmysql結合

次の関係を持つ 2 つのテーブルから 3 つの列を作成するクエリを作成する必要があります。

TABLE 1 には、列 ID2 の TABLE 2 に関連する列 ID があります。

表 1 には、user という列があります 表 2 には、names という列があります

一意のユーザーは 1 人である場合もありますが、そのユーザーには多数の名前が関連付けられている場合があります。

次の手順を実行すると、すべてのデータが取得されますが、関連付けられている名前ごとにユーザー列が繰り返されます。私が望むのは、一意に見えるようにすることですが、名前列は、次のように、ユーザー列に関連付けられているすべての名前がコンマで区切られて表示されます。

ユーザーを選択し、TABLE1 から名前を残して、TABLE1.id = TABLE2.id で TABLE2 を結合します。

これにより、そのユーザーの名前が表示されるたびに繰り返されるユーザーが表示されます。私が望むのは、次のように表示されることです:

ユーザー -
名前 サイレックス - ペドロックス、ランボー、ゼルダ ホームボーイ
- カルメン、カルロス、トム、サンドラ
ジェリー - サインフェルド、
クリスティーン ニンジャ - ソロボーイ

等....

0 投票する
2 に答える
2052 参照

mysql - Mysql Group_Concat 関数

GROUP_CONCAT 関数の使用方法がわかりません。クエリが、実際には必要のない値を繰り返しているように見えるからです。

私は3つのテーブルを持っています:

以下を生成するクエリを作成しようとしています。

したがって、GROUP_CONCAT を使用しようとしています。しかし、値が繰り返されているため、探している結果を出力する方法がわかりませんか?

上記の結果は次のとおりです。

0 投票する
1 に答える
2129 参照

mysql - GROUP_CONCATをLEFTJOINクエリに追加するにはどうすればよいですか?

私はこのクエリ(および結果)を持っています:

GROUP_CONCATをこれに組み込んで、次のようにするにはどうすればよいですか。

基本的に、記事のある表と画像のある関連表があります。記事には複数の画像が含まれている可能性があるため、whileループ内で画面に印刷しようとしています。複数の画像がある場合に、テキストが何度も繰り返されることは望ましくありません。

0 投票する
1 に答える
5060 参照

sql - group by の tsql 集計文字列

私は2つのテーブルを持っています:

Names(id, name) Addresses(id, name_id, address)

私を返すクエリを書きたい:名前、アドレスリスト(アドレス1、アドレス2、アドレス3、..)

何かのようなもの:

0 投票する
1 に答える
370 参照

mysql - 再びスタック - 別の GROUP_CONCAT を MySQL クエリに追加する必要がある

初めての試みでしたが、ご協力ありがとうございました

クエリに 2 番目の group_concat を追加して、VB.Net データグリッドにデータを返そうとしています。以下のように、2 つの列の結果を新しい列にロールアップしたいと考えています。

既存データ

両方の列を GROUP_CONCAT でロールアップして、次のような結果を取得します

ここで誰かのアドバイスを受けて、Team_matches と Matches_tags に結合テーブルを作成しました

現在、7 つのテーブルがあります。

これまでの私のクエリは次のとおりです。

結果を返します:

これは私が後にしているものではありません:

0 投票する
2 に答える
1020 参照

sql - SQLフィールドとしてサブ選択しますか?

私はここで少し迷っています...

Unit、、、、およびから統合レコードBuildingを取得したいテーブルがいくつかあります。OwnerPicture

これまでの私の質問は次のとおりです。

これはそのままで問題なく機能しますが、リターンレコードには、レコードに「フロント」画像のみが含まれる場合があります(存在する場合)。私の問題は、「Panorama」、「Interior」、「Floorplan」など、返品レコードに関連付けることができる写真の種類がいくつかあることです。これらはすべて、の可能な値が異なりますpicture.Picture_Category

個別のクエリを実行せずに、返されたセットにこれらの値(上記のように存在する場合)を返す方法はありますか?返されるセットに、「Front」、「Panorama」、「Interior」、および「Floorplan」の4つの可能なオプションすべてのエイリアス値(存在する場合)を含める必要がありますpicture.Picture_Category(独自の値picture.Path_To_Picture_On_Serverが関連付けられています)。

それは理にかなっていますか?

0 投票する
1 に答える
407 参照

mysql - group_concat質問(mysql)

group_concatを使用して特定の出力を生成する方法を理解するのに問題があります。

これが私が持っているものです:2つのテーブル:

1番目にはクライアントの情報が含まれています。

2番目には、各クライアントの動物の情報が含まれています。

この出力を生成する必要があります:(境界を省略しましたが、基本的にこれはテーブルの1列です)

これは私が試したものです:

次の出力が得られます(表の一部)。

所属する各クライアントの下に表示する動物をグループ化する方法がわかりません。

ご協力ありがとうございました。

0 投票する
3 に答える
1881 参照

mysql - Mysqlgroup_contactと条件

これはまれであり、可能かどうかはわかりません。

私はこのクエリを持っています:

そして、私はこの結果を得る:

私が必要としているのは、複数のwhere条件でid_tagの結果の配列をフィルター処理することです。

しかし、私はそれをすることができません。

誰か助けてくれませんか。

0 投票する
1 に答える
655 参照

mysql - 実際にNULLを登録するMySQL GROUP_CONCAT?

手続き的に生成されたこの大規模な MySQL クエリがあります。このクエリの一部で、サーバー セルを 1 つのセルに結合する必要があります。これは、その人が複数のフォーム エントリを持っている可能性があるためです (与えられた同じデータの場合、車、家、自転車、ベビーカー)。GROUP_CONCAT を使用して、それぞれが分離された 1 つのフィールドにすることができます。これはかなりうまく機能しますが、問題があります。

すべての情報が記入されていない人もいます。たとえば、車を例にとると、車は 3 台ありますが、1 台には写真があり、たまたま 3 台目です。だから私はすべての結果ですが、元の順序ではありません

私がテーブルに持っているもの

GROUP_CONCAT クエリを実行すると、これが表示されます

しかし、私はこれを手に入れたい

「carimage.jpg」の from にある 2 つのコンマに注意してください。

問題は、クエリの最初の部分に集中しているようSELECT GROUP_CONCAT(cfv.value) FROM cf_customfield_values cfvです。必要な方法で動作させるために、いくつかのことを試しました。

GROUP_CONCAT 内で IFNULL を使用して null 値を別のものに変更する IFNULL を
少し動かして、より良い結果が得られるかどうかを確認
する 従来の IF ステートメントを使用して null を別のものに変更する
COALESCE を使用して、少なくとも 1 つの非値が常に存在するようにするNULL
文字列を値の先頭および/または末尾に連結して、常に文字列が含まれているため NULL
ではないようにしましたそこにあるものは、それが NULL であることを認識し、それを連結しません。

これを本当に実行したい理由は、連結された値を表示用のサブテーブルに分割できるようにするためです (明らかに、表示スクリプト部分で起こりうる問題を防ぐために、コンマ以外のものを使用します)。

うわー、それは私よりも長かったですが、TLDR; null を値と同じように連結するには、GROUP_CONCAT が必要です。


完全な SQL

SELECT *, pregi.ttl AS 'general_information-name' , (SELECT GROUP_CONCAT(DISTINCT '[subtablerow]',CONCAT('[row num="',proffv.profileid,'"]',proffv.value),'[/subtablerow]') FROM cf_profiles_fields_values proffv LEFT JOIN cf_profiles_fields proff ON proffv.fieldid=proff.id LEFT JOIN cf_profiles prof ON prof.id=proffv.profileid WHERE proff.id='1') AS 'profile_first_name' , (SELECT GROUP_CONCAT(DISTINCT '[subtablerow]',CONCAT('[row num="',proffv.profileid,'"]',proffv.value),'[/subtablerow]') FROM cf_profiles_fields_values proffv LEFT JOIN cf_profiles_fields proff ON proffv.fieldid=proff.id LEFT JOIN cf_profiles prof ON prof.id=proffv.profileid WHERE proff.id='2') AS 'profile_last_name' , (SELECT GROUP_CONCAT(DISTINCT '[subtablerow]',CONCAT('[row num="',proffv.profileid,'"]',proffv.value),'[/subtablerow]') FROM cf_profiles_fields_values proffv LEFT JOIN cf_profiles_fields proff ON proffv.fieldid=proff.id LEFT JOIN cf_profiles prof ON prof.id=proffv.profileid WHERE proff.id='3') AS 'profile_e-mail_address' , (SELECT GROUP_CONCAT(DISTINCT '[subtablerow]',CONCAT('[row num="',proffv.profileid,'"]',proffv.value),'[/subtablerow]') FROM cf_profiles_fields_values proffv LEFT JOIN cf_profiles_fields proff ON proffv.fieldid=proff.id LEFT JOIN cf_profiles prof ON prof.id=proffv.profileid WHERE proff.id='4') AS 'profile_phone_-_office' , (SELECT GROUP_CONCAT(DISTINCT '[subtablerow]',CONCAT('[row num="',proffv.profileid,'"]',proffv.value),'[/subtablerow]') FROM cf_profiles_fields_values proffv LEFT JOIN cf_profiles_fields proff ON proffv.fieldid=proff.id LEFT JOIN cf_profiles prof ON prof.id=proffv.profileid WHERE proff.id='6') AS 'profile_fax' , (SELECT GROUP_CONCAT(DISTINCT '[subtablerow]',CONCAT('[row num="',proffv.profileid,'"]',proffv.value),'[/subtablerow]') FROM cf_profiles_fields_values proffv LEFT JOIN cf_profiles_fields proff ON proffv.fieldid=proff.id LEFT JOIN cf_profiles prof ON prof.id=proffv.profileid WHERE proff.id='7') AS 'profile_password' , (SELECT GROUP_CONCAT(DISTINCT '[subtablerow]',CONCAT('[row num="',proffv.profileid,'"]',proffv.value),'[/subtablerow]') FROM cf_profiles_fields_values proffv LEFT JOIN cf_profiles_fields proff ON proffv.fieldid=proff.id LEFT JOIN cf_profiles prof ON prof.id=proffv.profileid WHERE proff.id='9') AS 'profile_phone_-_cell' , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=9 AND cfv.memberid=core.id) AS bicycles_build_material , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=10 AND cfv.memberid=core.id) AS bicycles_color , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=7 AND cfv.memberid=core.id) AS bicycles_frame_size , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=8 AND cfv.memberid=core.id) AS bicycles_wheel_size , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=4 AND cfv.memberid=core.id) AS cars_exterior_color , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=5 AND cfv.memberid=core.id) AS cars_interior_color , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=18 AND cfv.memberid=core.id) AS cars_interior_color , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=17 AND cfv.memberid=core.id) AS cars_license , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=1 AND cfv.memberid=core.id) AS cars_make , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=2 AND cfv.memberid=core.id) AS cars_model , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=14 AND cfv.memberid=core.id) AS cars_picture , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=6 AND cfv.memberid=core.id) AS cars_upholstery_material , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=15 AND cfv.memberid=core.id) AS cars_vehicle_history , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=16 AND cfv.memberid=core.id) AS cars_vin , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=3 AND cfv.memberid=core.id) AS cars_year , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=21 AND cfv.memberid=core.id) AS contact_info_email_address , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=20 AND cfv.memberid=core.id) AS contact_info_fax , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=19 AND cfv.memberid=core.id) AS contact_info_phone , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=22 AND cfv.memberid=core.id) AS contact_info_url , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=13 AND cfv.memberid=core.id) AS strollers_height , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=11 AND cfv.memberid=core.id) AS strollers_seats , (SELECT GROUP_CONCAT(IFNULL(cfv.value,'test') ) FROM cf_customfield_values cfv WHERE fieldid=12 AND cfv.memberid=core.id) AS strollers_wheels FROM cf_members core LEFT JOIN cf_members pregi ON pregi.id=core.id