sql >> Database >  >> RDS >> Mysql

MySQL:genest GROUP_CONCAT

Probeer:

mysql> SELECT -> GROUP_CONCAT( -> CONCAT_WS('|||', 0, 1, -> GROUP_CONCAT(CONCAT_WS('|', 2, 3) SEPARATOR '||') -> ) -> ) `test`;ERROR 1111 (HY000):Ongeldig gebruik van groepsfunctiemysql> SELECT -> GROUP_CONCAT( -> CONCAT_WS('|||', 0, 1, -> (SELECT GROUP_CONCAT(CONCAT_WS('|', 2, 3) SEPARATOR '||')) -> ) -> ) `test`;+-------------+| testen |+-------------+| 0|||1|||2|3 |+-------------+1 rij in set (0,00 sec) 

UPDATE

Een mogelijke optie:

mysql> DROP TABEL INDIEN BESTAAT `parts`, `labor`, `kits`;Query OK, 0 rijen beïnvloed (0.00 sec)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, -> `hoeveelheid` varchar(45) DEFAULT NULL, -> PRIMAIRE SLEUTEL (`id`), -> UNIEKE SLEUTEL `id_UNIQUE` (`id`), -> SLEUTEL `KIT` (` kit_id`) -> );Query OK, 0 rijen beïnvloed (0.00 sec)mysql> MAAK TABEL `labor` ( -> `id` int(11) NOT NULL AUTO_INCREMENT, -> `kit_id` int(11) STANDAARD NULL, -> `is_quote` tinyint(4) NOT NULL DEFAULT '0', -> `description` varchar(150) NOT NULL, -> `hours` varchar(45) NOT NULL DEFAULT '0', -> PRIMAIRE SLEUTEL (` id`), -> UNIEKE SLEUTEL `id_UNIQUE` (`id`), -> KEY `KIT` (`kit_id`) -> );Query OK, 0 rijen beïnvloed (0.00 sec)mysql> CREATE TABLE `parts` ( -> `id` int(11) NIET 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) STANDAARD NULL, -> `sale_price` varchar(45) DEFAULT '0.00', -> `hoeveelheid' varchar(45) NOT NULL, -> PRIMAIRE SLEUTEL (`id`), -> UNIEKE SLEUTEL `id_UNIQUE` (` id`), -> KEY `KIT` (`kit_id`) -> );Query OK, 0 rijen beïnvloed (0.00 sec)mysql> INSERT INTO `kits` -> (`id`, -> `kit_id`, -> `is_quote`, -> `naam`, -> `beschrijving`, -> `hoeveelheid`) -> WAARDEN -> (1,0,0,"Hoofdkit", "Voorbeeldbeschrijving",1);Query OK , 1 rij aangetast (0.00 sec)mysql> INSERT INTO `kits` -> (`id`, -> `kit_id`, -> `is_quote`, -> `name`, -> `description`, -> `hoeveelheid `) -> VALUES -> (2,1,0,"Kit binnen kit", "Voorbeeldbeschrijving",1);Query OK, 1 rij beïnvloed (0.00 sec)mysql> INSERT INTO `parts` -> (`kit_id `, -> `is_quote`, -> `naam`, -> `beschrijving`, -> `uitverkoopprijs`, -> `hoeveelheid`) -> WAARDEN -> (1,0,"First Kit Part", "Part description","23.5",1);Query OK, 1 regel beïnvloed (0.00 sec)mysql> INSERT INTO `parts ` -> (`kit_id`, -> `is_quote`, -> `naam`, -> `beschrijving`, -> `sale_price`, -> `hoeveelheid`) -> WAARDEN -> (2,0,"Kit binnen kit part 1", "Sample Part Description","23.5",1);Query OK, 1 regel beïnvloed (0.00 sec)mysql> INSERT INTO `parts` -> (`kit_id`, -> `is_quote`, -> `name`, -> `description`, -> `sale_price`, -> `quantity`) -> VALUES -> (2,0,"Kit binnen kit part 2", "Sample Part Description","23.5" ,1);Query OK, 1 rij beïnvloed (0.00 sec)mysql> INSERT INTO `labor` -> (`kit_id`, -> `is_quote`, -> `description`, -> `hours`) -> VALUES -> (1,0,"First Kit arbeid","1.5");Query OK, 1 rij beïnvloed (0.00 sec)mysql> INSERT INTO `labor` -> (`kit_id`, -> `is_quote`, -> ` description`, -> `hours`) -> VALUES -> (2,0,"Kit binnen kit arbeid 1","1.5");Query OK, 1 rij beïnvloed (0.00 sec)mysql> INSERT INTO `labor` -> (`kit_id`, -> `is_quote`, -> `description`, -> `hours`) -> VALUES -> (2,0,"Kit binnen kit arbeid 2 ","1.5");Query OK, 1 rij beïnvloed (0.00 sec)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 parts WHERE parts.kit_id =kits_table.id), -> (SELECT GROUP_CONCAT( -> CONCAT_WS('|', labor.id, labor.description) -> SEPARATOR '||') FROM arbeid WHERE labor.kit_id =kits_table.id) -> ) -> SEPARATOR '||||' -> ) als kits , -> GROUP_CONCAT(CONCAT_WS('|', onderdelen.id, onderdelen.naam) SEPARATOR '|||') als onderdelen, -> GROUP_CONCAT(CONCAT_WS('|', arbeid.id, arbeid.description) SEPARATOR '| ||') as arbeid -> FROM kits -> LEFT JOIN kits as kits_table ON kits_table .kit_id =kits.id -> LEFT OUTER JOIN onderdelen OP parts.kit_id =kits.id -> LEFT OUTER JOIN arbeid ON labor.kit_id =kits.id -> WHERE kits.id =1 -> GROUP BY kits.id\ G****************************** 1e rij ******************** ******** id:1is_quote:0 kits:2|||Kit binnen kit|||2|Kit binnen kit deel 1||3|Kit binnen kit deel 2|||2|Kit binnen kit arbeid 1||3|Kit binnen set arbeid 2 delen:1|Eerste set Gedeeltelijke arbeid:1|Eerste set arbeid1 rij in set (0,00 sec) 

UPDATE 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) -> SCHEIDER '||') VAN onderdelen WHERE parts.kit_id =kits_table.id), -> (SELECT GROUP_CONCAT(DISTINCT -> CONCAT_WS('|', arbeid. id, labor.description) -> SEPARATOR '||') FROM arbeid WHERE labor.kit_id =kits_table.id) -> ) -> SEPARATOR '||||' -> ) als kits, -> GROUP_CONCAT(DISTINCT CONCAT_WS( '|', parts.id, parts.name) SEPARATOR '|||') als onderdelen, -> GROUP_CONCAT(DISTINCT CONCAT_WS('|', arbeid.id, arbeid.description) SEPARATOR '|||') als arbeid -> VAN kits -> LEFT SLUIT kits als kits_table AAN kits_table.kit_id =kits.id -> LEFT OUTER JOIN onderdelen OP parts.kit_id =kits.id -> LEFT OUTER JOIN arbeid ON labor.kit_id =kits.id -> WAAR kits.id =1 -> GROEP OP kits.id\G************************** 1. rij *************** *********** id:1is_quote:0 kits:2|||Kit binnen kit|||3|Kit binnen kit deel 1||4|Kit binnen kit deel 2|||3| Arbeid in kit binnen kit 1||4| Arbeid in kit binnen kit 2 delen:1|Eerste kit deel 1|||2|Eerste kit deel 2 arbeid:1|Eerste arbeid in kit 1|||2|Eerste arbeid in kit 21 rij in instellen (0,00 sec) 


  1. Trek jaren af ​​van een datum in PostgreSQL

  2. Tel het aantal exemplaren van een subtekenreeks in een MySQL-kolom

  3. Reset root-wachtwoord van MySQL

  4. MySQL – MariaDB – De allereerste opgeslagen procedure schrijven