Hãy thử:
mysql> SELECT -> GROUP_CONCAT (-> CONCAT_WS ('|||', 0, 1, -> GROUP_CONCAT (CONCAT_WS ('|', 2, 3) SEPARATOR '||') ->) ->) `test`; ERROR 1111 (HY000):Sử dụng không hợp lệ nhóm functionmysql> SELECT -> GROUP_CONCAT (-> CONCAT_WS ('|||', 0, 1, -> (SELECT GROUP_CONCAT (CONCAT_WS ('|',)) 2, 3) BỘ RIÊNG '||')) ->) ->) `test`; + ------------- + | kiểm tra | + ------------- + | 0 ||| 1 ||| 2 | 3 | + ------------- + 1 hàng trong bộ (0,00 giây)
CẬP NHẬT
Một lựa chọn khả thi:
mysql> DROP TABLE IF TỒN TẠI `part`,` labour`, `kits`; Truy vấn OK, 0 hàng bị ảnh hưởng (0,00 giây) mysql> TẠO BẢNG` 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, -> `số lượng` varchar (45) DEFAULT NULL, -> PRIMARY KEY (` id`), -> UNIQUE KEY `id_UNIQUE` (` id`), -> KEY `KIT` (` kit_id`) ->); Truy vấn OK, 0 hàng bị ảnh hưởng (0,00 giây) mysql> TẠO BẢNG `worker` (->` 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`), -> KEY DUY NHẤT `id_UNIQUE` (` id`), -> KEY `KIT` (` kit_id`) ->); Truy vấn OK, 0 hàng bị ảnh hưởng (0,00 giây) mysql> TẠO BẢNG `part` ( -> `id` int (11) KHÔNG 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', ->` số lượng` varchar (45) NOT NULL, -> PRIMARY KEY (`id`), -> UNIQUE KEY` id_UNIQUE` (` id`), -> KEY `KIT` (` kit_id`) ->); Truy vấn OK, 0 hàng bị ảnh hưởng (0,00 giây) mysql> CHÈN VÀO `kits` -> (` id`, -> `kit_id`, -> `là_quote`, ->` tên`, -> `mô tả`, ->` số lượng`) -> GIÁ TRỊ -> (1,0,0, "Bộ chính", "Mô tả mẫu", 1); Truy vấn OK , 1 hàng bị ảnh hưởng (0,00 giây) mysql> CHÈN VÀO `bộ dụng cụ` -> (` id`, -> `kit_id`, ->` is_quote`, -> `tên`, ->` mô tả`, -> `số lượng `) -> VALUES -> (2,1,0," Bộ dụng cụ trong bộ "," Mô tả mẫu ", 1); Truy vấn OK, 1 hàng bị ảnh hưởng (0,00 giây) mysql> CHÈN VÀO` bộ phận` -> (`kit_id `, ->` is_quote`, -> `name`, ->` description`, -> `sale_price`, -> `số lượng`) -> GIÁ TRỊ -> (1,0," Phần bộ đầu tiên "," Mô tả phần "," 23,5 ", 1); Truy vấn OK, 1 hàng bị ảnh hưởng (0,00 giây) mysql> CHÈN VÀO` phần `-> (` kit_id`, -> `is_quote`, ->` name`, -> `description`, ->` sale_price`, -> `số lượng`) -> VALUES -> (2,0," Kit trong kit part 1 "," Sample Part Description "," 23.5 ", 1); Truy vấn OK, 1 hàng bị ảnh hưởng (0,00 giây) mysql> CHÈN VÀO` part` -> (`kit_id`, ->` is_quote`, -> `tên`, ->` mô tả`, -> `giá_giá`, ->` số lượng`) -> GIÁ TRỊ -> (2,0, "Bộ kit trong bộ phần 2", "Mô tả bộ phận mẫu", "23.5" , 1); Truy vấn OK, 1 hàng bị ảnh hưởng (0,00 giây) mysql> CHÈN VÀO `lao động` -> (` kit_id`, -> `is_quote`, ->` description`, -> `giờ`) -> GIÁ TRỊ -> (1,0, "Công cụ đầu tiên", "1,5"); Truy vấn OK, 1 hàng bị ảnh hưởng (0,00 giây) mysql> CHÈN VÀO `lao động` -> (` kit_id`, -> `is_quote`, ->` description`, -> `hours`) -> VALUES -> (2,0," Kit trong kit labour 1 "," 1,5 "); Truy vấn OK, 1 hàng bị ảnh hưởng (0,00 giây) mysql> CHÈN VÀO `lao động` -> (` kit_id`, -> `is_quote`, ->` mô tả`, -> `giờ`) -> GIÁ TRỊ -> (2,0," Bộ công cụ trong bộ lao động 2 "," 1.5 "); Truy vấn OK, 1 hàng bị ảnh hưởng (0,00 giây) mysql> SELECT kits.id, kits.is_quote, -> GROUP_CONCAT (-> CONCAT_WS ('|||', kits_table.id, kits_table.name, -> (CHỌN GROUP_CONCAT (-> CONCAT_WS ('|', part.id, part.name) -> SEPARATOR '||') TỪ các bộ phận WHERE part.kit_id =kits_table.id), -> (CHỌN GROUP_CONCAT (-> CONCAT_WS ('|', labour.id, labour.description) -> SEPARATOR '||') TỪ lao động WHERE lao động.kit_id =kits_table.id) ->) -> SEPARATOR '||||' ->) dưới dạng bộ dụng cụ , -> GROUP_CONCAT (CONCAT_WS ('|', part.id, part.name) SEPARATOR '|||') làm bộ phận, -> GROUP_CONCAT (CONCAT_WS ('|', labour.id, labour.description) SEPARATOR '| || ') dưới dạng lao động -> TỪ bộ dụng cụ -> THAM GIA TRÁI bộ dụng cụ dưới dạng kits_table TRÊN kits_table .kit_id =kits.id -> TRÁI OUTER THAM GIA các bộ phận TRÊN part.kit_id =kits.id -> TRÁI RA THAM GIA lao động VÀO lao động.kit_id =kits.id -> WHERE kits.id =1 -> NHÓM BẰNG kits.id \ G *************************** 1. hàng ******************* ******** id:1is_quote:0 kits:2 ||| Kit trong kit ||| 2 | Kit trong kit phần 1 || 3 | Kit trong kit phần 2 ||| 2 | Kit trong kit lao động 1 || 3 | Bộ công cụ trong bộ lao động 2 phần:1 | Bộ công cụ đầu tiên Phần lao động:1 | Bộ công cụ đầu tiên 1 hàng trong bộ (0,00 giây)
CẬP NHẬT 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) ('|', part.id, part.name) -> SEPARATOR '||') TỪ các bộ phận WHERE part.kit_id =kits_table.id), -> (CHỌN GROUP_CONCAT (DISTINCT -> CONCAT_WS ('|', lao động). id, labour.description) -> SEPARATOR '||') TỪ lao động WHERE labour.kit_id =kits_table.id) ->) -> SEPARATOR '||||' ->) dưới dạng bộ dụng cụ, -> GROUP_CONCAT (DISTINCT CONCAT_WS ( '|', Parts.id, Parts.name) SEPARATOR '|||') dưới dạng các bộ phận, -> GROUP_CONCAT (DISTINCT CONCAT_WS ('|', labour.id, labour.description) SEPARATOR '|||') dưới dạng lao động -> TỪ bộ dụng cụ -> Bộ dụng cụ THAM GIA TRÁI dưới dạng kits_table TRÊN kits_table.kit_id =kits.id -> THAM GIA TRÁI bên ngoài các bộ phận TRÊN part.kit_id =kits.id -> ĐẦU RA TRÁI THAM GIA lao động TRÊN lao động.kit_id =kits.id -> ĐÂU kits.id =1 -> GROUP BY kits.id \ G *************************** 1. hàng *************** ************ id:1is_quote:0 bộ dụng cụ:2 ||| Bộ dụng cụ bên trong bộ ||| 3 | Bộ bên trong bộ phần 1 || 4 | Bộ bên trong bộ phần 2 ||| 3 | Bộ dụng cụ trong bộ lao động 1 || 4 | Bộ phụ kiện trong bộ lao động 2 phần:1 | Bộ đầu tiên Phần 1 ||| 2 | Bộ đầu tiên Phần 2 lao động:1 | Bộ đầu tiên lao động 1 ||| 2 | Bộ đầu tiên lao động 21 hàng trong đặt (0,00 giây)