Групирани записи

C++ JAVA
Post Reply
User avatar
Ticketa
Турист
Турист
Posts: 571
Joined: Mon Feb 27, 2012 1:54 pm
Answers: 24
Location: in /root
Contact:

Групирани записи

Post by Ticketa » Wed Aug 12, 2020 10:40 pm

Привет,
Имам три таблици (по долу е целия sql)
Ползвам следната заявка, с която вземам Продукта с неговите специфики (те се съхраняват в таблица attribute)

SELECT pesho_products.product_id AS product_id,pesho_products.product_name,GROUP_CONCAT(pesho_attribute.att_name SEPARATOR '
--') AS pesho_product_att FROM pesho_products LEFT JOIN pesho_product_att ON pesho_products.product_id=pesho_product_att.product_id INNER JOIN pesho_attribute ON pesho_attribute.att_id=pesho_product_att.category_id GROUP BY product_id

Резултата го получавам по този начин:
Телфер : планка
--модел 1
--скоба
--модел 2
--ел. мотор
--200W
--редуктор
--1:100

Искам, обаче да съм по "гъвкав". Например резултата да го сортирам и да стане обратно.

Продукт: Телфер

основен възел
Ел. Мотор
-- 200W
Редуктор
-- 1:1000
Планка
-- модел 1
Скоба
-- модел 2

основни детайли
Болт
-- М16
Греда
-- 50см


Другото, което е да мога да добавя и типа(като примера , който съм дал по-горе)
Тип: основен възел (0), основни детайли(1)

Полето arr_type (добавил съм коментар за яснота)


Code: Select all

-- phpMyAdmin SQL Dump -- version 5.0.2 -- https://www.phpmyadmin.net/ -- -- Host: localhost -- Generation Time: 13 авг 2020 в 00:59 -- Версия на сървъра: 8.0.17 -- PHP Version: 7.2.24 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; START TRANSACTION; SET time_zone = "+00:00"; -- -- Database: `pesho_be` -- -- -------------------------------------------------------- -- -- Структура на таблица `pesho_attribute` -- CREATE TABLE `pesho_attribute` ( `att_id` int(11) NOT NULL COMMENT 'Уникален номер на атрибута(опция, особеност)', `att_name` varchar(255) NOT NULL COMMENT 'Наименование на атрибута(опция,особеност)', `att_parent_id` int(11) NOT NULL DEFAULT '0' COMMENT 'Под атрибут на майката(главната) атрибут(опция,особеност)', `att_type` int(11) NOT NULL DEFAULT '0' COMMENT 'основен възел (0), основни детайли(1)', `att_update` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Схема на данните от таблица `pesho_attribute` -- INSERT INTO `pesho_attribute` (`att_id`, `att_name`, `att_parent_id`, `att_type`, `att_update`) VALUES (1, 'ел. мотор', 0, 0, NULL), (2, 'редуктор', 0, 0, NULL), (3, '200W', 1, 0, NULL), (4, '300W', 1, 0, NULL), (5, '500W', 1, 0, NULL), (6, '900W', 1, 0, NULL), (7, '1:100', 2, 0, NULL), (8, 'планка', 0, 1, NULL), (9, 'скоба ', 0, 1, NULL), (10, 'болт', 0, 1, NULL), (11, 'модел 1 ', 8, 1, NULL), (12, 'модел 2', 9, 1, NULL), (13, 'М16', 10, 1, NULL), (14, 'греда', 0, 0, NULL), (15, '50см', 14, 0, NULL); -- -------------------------------------------------------- -- -- Структура на таблица `pesho_products` -- CREATE TABLE `pesho_products` ( `product_id` int(11) NOT NULL COMMENT 'Уникален номер на продукта', `product_name` varchar(255) NOT NULL COMMENT 'Наименование на продукта', `product_type` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Схема на данните от таблица `pesho_products` -- INSERT INTO `pesho_products` (`product_id`, `product_name`, `product_type`) VALUES (1, 'Телфер', 0); -- -------------------------------------------------------- -- -- Структура на таблица `pesho_product_att` -- CREATE TABLE `pesho_product_att` ( `patt_id` int(11) NOT NULL, `product_id` int(11) NOT NULL, `category_id` int(11) NOT NULL, `type_id` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Схема на данните от таблица `pesho_product_att` -- INSERT INTO `pesho_product_att` (`patt_id`, `product_id`, `category_id`, `type_id`) VALUES (1, 1, 1, 0), (2, 1, 3, 0), (3, 1, 2, 0), (4, 1, 7, 0), (5, 1, 8, 1), (6, 1, 11, 1), (7, 1, 9, 1), (8, 1, 12, 1); -- -- Indexes for dumped tables -- -- -- Indexes for table `pesho_attribute` -- ALTER TABLE `pesho_attribute` ADD PRIMARY KEY (`att_id`); -- -- Indexes for table `pesho_products` -- ALTER TABLE `pesho_products` ADD PRIMARY KEY (`product_id`); -- -- Indexes for table `pesho_product_att` -- ALTER TABLE `pesho_product_att` ADD PRIMARY KEY (`patt_id`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `pesho_attribute` -- ALTER TABLE `pesho_attribute` MODIFY `att_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Уникален номер на атрибута(опция, особеност)', AUTO_INCREMENT=16; -- -- AUTO_INCREMENT for table `pesho_products` -- ALTER TABLE `pesho_products` MODIFY `product_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Уникален номер на продукта', AUTO_INCREMENT=2; -- -- AUTO_INCREMENT for table `pesho_product_att` -- ALTER TABLE `pesho_product_att` MODIFY `patt_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9; COMMIT;

Post Reply