sql >> Database teknologi >  >> RDS >> Mysql

MySQL:Indlejret GROUP_CONCAT

Prøv:

mysql> SELECT -> GROUP_CONCAT( -> CONCAT_WS('|||', 0, 1, -> GROUP_CONCAT(CONCAT_WS('|', 2, 3) SEPARATOR '||') -> ) -> ) `test`;FEJL 1111 (HY000):Ugyldig brug af gruppen functionmysql> SELECT -> GROUP_CONCAT( -> CONCAT_WS('|||', 0, 1, -> (SELECT GROUP_CONCAT(CONCAT_WS('|', 2, 3) SEPARATOR '||')) -> ) -> ) `test`;+-------+| test |+--------------+| 0|||1|||2|3 |+-------------+1 række i sæt (0,00 sek.) 

OPDATERING

En mulig mulighed:

mysql> SLIP TABEL HVIS FINDER `parts`, `labor`, `kits`;Forespørgsel OK, 0 rækker påvirket (0,00 sek)mysql> OPRET TABEL `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`) -> );Forespørgsel OK, 0 rækker påvirket (0.00 sek)mysql> OPRET TABEL `arbejdskraft` ( -> `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, -> `timer` varchar(45) NOT NULL STANDARD '0', -> PRIMÆR NØGLE (` id`), -> UNIK NØGLE `id_UNIQUE` (`id`), -> KEY `KIT` (`kit_id`) -> );Forespørgsel OK, 0 rækker påvirket (0,00 sek.)mysql> OPRET TABEL `dele` ( -> `id` int(11) IKKE NU LL AUTO_INCREMENT, -> `kit_id` int(11) DEFAULT NULL, -> `is_quote` tinyint(4) NOT NULL DEFAULT '0', -> `navn` 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`) -> );Forespørgsel OK, 0 rækker påvirket (0,00 sek.)mysql> INSERT INTO `kits` -> (`id`, -> `kit_id`, -> `er_citat`, -> `navn`, -> `beskrivelse`, -> `mængde`) -> VÆRDIER -> (1,0,0,"Hovedsæt", "Eksempelbeskrivelse",1);Forespørgsel OK , 1 række berørt (0,00 sek) mysql> INSERT INTO `kits` -> (`id`, -> `kit_id`, -> `is_quote`, -> `name`, -> `description`, -> `quantity` `) -> VALUES -> (2,1,0,"Kit inde i kit", "Sample Description",1);Forespørgsel OK, 1 række påvirket (0,00 sek.)mysql> INSERT INTO `parts` -> (`kit_id `, -> `er_citat`, -> `navn`, -> `beskrivelse`, -> `udsalgspris`, -> `mængde`) -> VÆRDI -> (1,0,"First Kit Part", "Part description","23.5",1);Forespørgsel OK, 1 række påvirket (0,00 sek.)mysql> INSERT INTO `parts ` -> (`kit_id`, -> `is_quote`, -> `name`, -> `description`, -> `sale_price`, -> `quantity`) -> VALUES -> (2,0,"Kit i kit del 1", "Sample Part Description","23.5",1);Forespørgsel OK, 1 række berørt (0,00 sek)mysql> INSERT INTO `parts` -> (`kit_id`, -> `is_quote`, -> `navn`, -> `beskrivelse`, -> `udsalgspris`, -> `mængde`) -> VÆRDIER -> (2,0,"Sæt i kit del 2", "Sample Part Description","23.5" ,1);Forespørgsel OK, 1 række påvirket (0,00 sek.)mysql> INSERT INTO `labor` -> (`kit_id`, -> `is_quote`, -> `description`, -> `hours`) -> VALUES -> (1,0,"First Kit labor","1.5");Forespørgsel OK, 1 række påvirket (0.00 sek)mysql> INSERT INTO `labor` -> (`kit_id`, -> `is_quote`, -> ` beskrivelse`, -> `timer`) -> VÆRDIER -> (2,0,"Kit inden for sætarbejde 1","1,5");Forespørgsel OK, 1 række påvirket (0,00 sec)mysql> INSERT INTO `labor` -> (`kit_id`, -> `is_quote`, -> `description`, -> `hours`) -> VALUES -> (2,0,"Kit within kit labor 2 ","1.5");Forespørgsel OK, 1 række påvirket (0,00 sek.)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 '||') FRA dele WHERE parts.kit_id =kits_table.id), -> (SELECT GROUP_CONCAT( -> CONCAT_WS('|', labor.id, labor.description) -> SEPARATOR '||') FRA labor. WHERE labor.kit_id =kits_table.id) -> ) -> SEPARATOR '|||' -> ) som sæt , -> GROUP_CONCAT(CONCAT_WS('|', parts.id, parts.name) SEPARATOR '||') som dele, -> GROUP_CONCAT(CONCAT_WS('|', labor.id, labor.description) SEPARATOR '| ||') som arbejdskraft -> FRA sæt -> LEFT JOIN-sæt som sæt_tabel PÅ sæt_tabel .kit_id =kits.id -> VENSTRE YDRE JOIN dele PÅ parts.kit_id =kits.id -> VENSTRE YDRE JOIN labor ON labor.kit_id =kits.id -> WHERE kits.id =1 -> GRUPPER EFTER kits.id\ G*************************** 1. række ******************** ******** id:1is_citat:0 sæt:2|||Sæt i kit|||2|Sæt i kit del 1||3|Sæt i kit del 2|||2|Sæt indenfor kit arbejdskraft 1||3|Sæt inden for sætarbejde 2 dele:1|Første sæt Delarbejde:1|Første sæt arbejdskraft1 række i sæt (0,00 sek.) 

OPDATERING 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 '||') FRA dele WHERE parts.kit_id =kits_table.id), -> (SELECT GROUP_CONCAT(DISTINCT -> CONCAT_WS('|', labor. id, labor.description) -> SEPARATOR '||') FRA labor WHERE labor.kit_id =kits_table.id) -> ) -> SEPARATOR '|||' -> ) som sæt, -> GROUP_CONCAT(DISTINCT CONCAT_WS( '|', parts.id, parts.name) SEPARATOR '||') som dele, -> GROUP_CONCAT(DISTINCT CONCAT_WS('|', labor.id, labor.description) SEPARATOR '|||') som arbejdskraft -> FRA kits -> LEFT JOIN kits som kits_table ON kits_table.kit_id =kits.id -> LEFT OUTER JOIN dele PÅ parts.kit_id =kits.id -> VENSTRE YDRE JOIN labor ON labor.kit_id =kits.id -> HVOR kits.id =1 -> GRUPPER EFTER kits.id\G**************************** 1. række *************** ************* id:1is_citat:0 sæt:2|||Sæt i sæt|||3|Sæt i sæt, del 1||4|Sæt i sæt, del 2|||3| Sæt inden for sæt arbejdskraft 1||4|Sæt i sæt arbejdskraft 2 dele:1|Første sæt del 1|||2|Første sæt del 2 arbejde:1|Første sæt arbejdskraft 1|||2|Første sæt arbejdskraft 21 række i sæt (0,00 sek.) 


  1. MySQL script med parametre

  2. Sådan udfyldes manglende datoer i PostgreSQL ved hjælp af generate_series

  3. MySQL IFNULL ANDET

  4. Hvordan kan jeg oprette en begrænsning for at kontrollere, om en e-mail er gyldig i postgres?