sql >> データベース >  >> RDS >> Mysql

MySQL:ネストされたGROUP_CONCAT

    試してみてください:

      mysql> SELECT-> GROUP_CONCAT(-> CONCAT_WS('|||'、0、1、-> GROUP_CONCAT(CONCAT_WS('|'、2、3)SEPARATOR'||')->) ->) `test`;エラー1111(HY000):グループ関数の使用が無効ですmysql> SELECT-> GROUP_CONCAT(-> CONCAT_WS('|||'、0、1、->(SELECT GROUP_CONCAT(CONCAT_WS('|'、 2、3)SEPARATOR'||'))->)->) `test`; + ------------- + |テスト|+------------- + | 0 ||| 1 ||| 2 | 3 | + ------------- + 1行セット(0,00秒) 

    更新

    考えられるオプションの1つ:

      mysql> DROP TABLE IF EXISTS `parts`、` labor`、 `kits`;クエリOK、影響を受ける行は0(0.00秒)mysql> CREATE TABLE` kits`(-> `id` int(11 )NOT NULL AUTO_INCREMENT、-> `kit_id` int(11)DEFAULT NULL、->` is_quote` tinyint(4)NOT NULL DEFAULT '0'、-> `name` varchar(45)DEFAULT NULL、->` description` varchar(150)DEFAULT NULL、-> `quantity` varchar(45)DEFAULT NULL、-> PRIMARY KEY(` id`)、-> UNIQUE KEY `id_UNIQUE`(` id`)、-> KEY `KIT`(` kit_id`)->);クエリOK、影響を受ける0行(0.00秒)mysql> CREATE TABLE `labor`(->` id` int(11)NOT NULL AUTO_INCREMENT、-> `kit_id` int(11)DEFAULT NULL、 -> `is_quote` tinyint(4)NOT NULL DEFAULT '0'、->` description` varchar(150)NOT NULL、-> `hours` varchar(45)NOT NULL DEFAULT '0'、-> PRIMARY KEY(` id`)、-> UNIQUE KEY `id_UNIQUE`(` id`)、-> KEY `KIT`(` kit_id`)->);クエリOK、影響を受ける行は0(0.00秒)mysql> CREATE TABLE `parts`( -> `id` int(11)NOT NU LL AUTO_INCREMENT、-> `kit_id` int(11)DEFAULT NULL、->` is_quote` tinyint(4)NOT NULL DEFAULT '0'、-> `name` varchar(45)DEFAULT NULL、->` description` varchar( 150)DEFAULT NULL、-> `sale_price` varchar(45)DEFAULT '0.00'、-> `quantity` varchar(45)NOT NULL、-> PRIMARY KEY(` id`)、-> UNIQUE KEY `id_UNIQUE`(` id`)、-> KEY `KIT`(` kit_id`)->);クエリOK、影響を受ける行は0(0.00秒)mysql> INSERT INTO `kits`->(` id`、-> `kit_id`、-> `is_quote`、->` name`、-> `description`、-> `quantity`)-> VALUES->(1,0,0、 "Main Kit"、 "Sample Description"、1); Query OK 、影響を受ける1行(0.00秒)mysql> INSERT INTO `kits`->(` id`、-> `kit_id`、->` is_quote`、-> `name`、->` description`、-> `quantity `)->値->(2,1,0、"キット内のキット"、"サンプルの説明 "、1);クエリOK、影響を受ける1行(0.00秒)mysql> INSERT INTO`パーツ`->( `kit_id `、->` is_quote`、-> `name`、->` description`、-> `sale_price`、 -> `quantity`)-> VALUES->(1,0、" First Kit Part "、" Part description "、" 23.5 "、1);クエリOK、影響を受ける1行(0.00秒)mysql> INSERT INTO` parts `->(` kit_id`、-> `is_quote`、->` name`、-> `description`、->` sale_price`、-> `quantity`)-> VALUES->(2,0、" Kitキットパーツ1内"、"サンプルパーツの説明 "、" 23.5 "、1);クエリOK、影響を受ける1行(0.00秒)mysql> INSERT INTO`パーツ`->( `kit_id`、->` is_quote`、-> `name`、->` description`、-> `sale_price`、-> `quantity`)-> VALUES->(2,0、 "キットパーツ2内のキット"、 "サンプルパーツの説明"、 "23.5" 、1);クエリOK、影響を受ける1行(0.00秒)mysql> INSERT INTO `labor`->(` kit_id`、-> `is_quote`、->` description`、-> `hours`)-> VALUES->(1,0、 "First Kit Labor"、 "1.5");クエリOK、影響を受ける1行(0.00秒)mysql> INSERT INTO `labor`->(` kit_id`、-> `is_quote`、->` description`、-> `hours`)-> VALUES->(2,0、" Kit within kit Labor 1 "、" 1.5 ");クエリOK、1行が影響を受ける(0.00 sec)mysql> INSERT INTO `labor`->(` kit_id`、-> `is_quote`、->` description`、-> `hours`)-> VALUES->(2,0、" Kit within kit Labor 2 "、" 1.5 ");クエリOK、影響を受ける1行(0.00秒)mysql> SELECT kits.id、kits.is_quote、-> GROUP_CONCAT(-> CONCAT_WS('|||'、kits_table.id、kits_table.name、 ->(SELECT GROUP_CONCAT(-> CONCAT_WS('|'、parts.id、parts.name)-> SEPARATOR'||')FROMパーツWHEREparts.kit_id =kits_table.id)、->(SELECT GROUP_CONCAT(-> CONCAT_WS('|'、labor.id、labor.description)-> SEPARATOR'||')FROM Labor WHERE Labor.kit_id =kits_table.id)->)-> SEPARATOR'||||'->)キットとして、-> GROUP_CONCAT(CONCAT_WS('|'、parts.id、parts.name)SEPARATOR'|||')パーツとして、-> GROUP_CONCAT(CONCAT_WS('|'、labor.id、labor.description)SEPARATOR'| ||')asLabor->FROMキット->LEFTJOINキットaskits_tableON kits_table .kit_id =kits.id-> LEFTOUTERJOINパーツONparts.kit_id=kits.id-> LEFTOUTERJOINレイバーONlabor.kit_id=kits.id-> WHERE kits.id =1-> GROUP BY kits.id \ G***************************1.行******************* ******** id:1is_quote:0キット:2|||キット内のキット|||2|キットパート1内のキット||3|キットパート2内のキット|||2|キット作業内のキット1 || 3 |キット作業内のキット2パーツ:1 |最初のキットパーツ作業:1 |最初のキット作業1行セット(0.00秒) 

    アップデート2

      mysql> SELECT kits.id、kits.is_quote、-> GROUP_CONCAT(DISTINCT-> CONCAT_WS('|||'、kits_table.id、kits_table.name、->(SELECT GROUP_CONCAT(DISTINCT-> CONCAT_WS ('|'、parts.id、parts.name)-> SEPARATOR'||')FROMパーツWHEREparts.kit_id =kits_table.id)、->(SELECT GROUP_CONCAT(DISTINCT-> CONCAT_WS('|'、labor。 id、labor.description)-> SEPARATOR'||')FROM Labor WHERE Labor.kit_id =kits_table.id)->)-> SEPARATOR'||||'->)キットとして、-> GROUP_CONCAT(DISTINCT CONCAT_WS( '|'、parts.id、parts.name)SEPARATOR'|||')パーツとして、-> GROUP_CONCAT(DISTINCT CONCAT_WS('|'、labor.id、labor.description)SEPARATOR'|||')as Labor ->FROMキット->キットとしてのLEFTJOINキットonkits_table.kit_id=kits.id-> LEFTOUTERJOINパーツONparts.kit_id=kits.id-> LEFT OUTER JOIN Labor ON Labor.kit_id =kits.id-> WHERE kits.id =1-> GROUP BY kits.id \ G***************************1.行*************** ************ id:1is_quote:0キット:2|||キット内のキット|||3|キットパート1内のキット||4|キットパート2内のキット|||3 |キット作業内のキット1||4 |キット作業内のキット2パーツ:1|最初のキットパーツ1||| 2 |最初のキットパート2作業:1|最初のキット作業1|||2|最初のキット作業21列セット(0,00秒) 


    1. MySQLがテキストファイルに書き込む

    2. SQLServerでデータベースの破損に対処する方法を知る方法

    3. mysqlのDC2Type配列データ型とは何ですか

    4. Heroku pg:pullがスキーマの入力に失敗する