powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с запросом group_concat из 4 таблиц.
4 сообщений из 4, страница 1 из 1
Помогите с запросом group_concat из 4 таблиц.
    #38355488
mr.Ulugbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем
Знатоки помогите с запросом..
есть 4 таблиц


таблица размеров sizes
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
DROP TABLE IF EXISTS `size_goods`;
CREATE TABLE `size_goods` (
  `id` int(11) NOT NULL,
  `sizes` varchar(10) NOT NULL,
  UNIQUE KEY `id` (`id`),
  UNIQUE KEY `sizes` (`sizes`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `size_goods` VALUES ('11', '40');
INSERT INTO `size_goods` VALUES ('4', '41');
INSERT INTO `size_goods` VALUES ('5', '43');
INSERT INTO `size_goods` VALUES ('6', '44');
INSERT INTO `size_goods` VALUES ('1', '8');
INSERT INTO `size_goods` VALUES ('2', '9');
INSERT INTO `size_goods` VALUES ('8', 'XL');
INSERT INTO `size_goods` VALUES ('9', 'XL-50');
INSERT INTO `size_goods` VALUES ('7', 'XXL');
INSERT INTO `size_goods` VALUES ('10', 'XXX');  


таблица товары goods
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
DROP TABLE IF EXISTS `goods`;
CREATE TABLE `goods` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id_goods',
  `name` varchar(20) NOT NULL,
  `parent_id` int(11) NOT NULL,
  `is_group` tinyint(4) NOT NULL,
  `description` varchar(30) NOT NULL,
  `model` varchar(20) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uniq_model` (`model`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;


INSERT INTO `goods` VALUES ('0', 'All goods', '-1', '1', 'All goods root id don\'t delete', '0-11');
INSERT INTO `goods` VALUES ('1', 'Shoes', '0', '1', 'Category Shoes', '101');
INSERT INTO `goods` VALUES ('2', 'Salamander', '1', '0', 'Salamander gt-266', 'gt-266');
INSERT INTO `goods` VALUES ('3', 'Salamander', '1', '0', 'Salamander gt-267', 'gt-267');
INSERT INTO `goods` VALUES ('4', 'Salamander', '1', '0', 'Salamander gt-268', 'gt-268');
INSERT INTO `goods` VALUES ('5', 'Shirts', '0', '1', 'Category Shirts', '501');
INSERT INTO `goods` VALUES ('6', 'Nike', '5', '0', 'Nike GTG-01', 'GTG-01');
INSERT INTO `goods` VALUES ('7', 'Nike', '5', '0', 'Nike GTG-02', 'GTG-02');
INSERT INTO `goods` VALUES ('8', 'Nike', '5', '0', 'Nike GTG-03', 'GTG-03');



таблица характеристики одного товара несколько размеры property
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
  DROP TABLE IF EXISTS `property`;
CREATE TABLE `property` (
  `id` int(11) NOT NULL,
  `id_sizes` int(20) NOT NULL,
  `id_goods` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`,`id_sizes`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of property
-- ----------------------------
INSERT INTO `property` VALUES ('0', '2', '0');
INSERT INTO `property` VALUES ('1', '1', '2');
INSERT INTO `property` VALUES ('2', '2', '2');
INSERT INTO `property` VALUES ('3', '3', '2');
INSERT INTO `property` VALUES ('4', '4', '2');
INSERT INTO `property` VALUES ('5', '5', '2');
INSERT INTO `property` VALUES ('6', '4', '3');
INSERT INTO `property` VALUES ('7', '5', '3');
INSERT INTO `property` VALUES ('8', '6', '3');
INSERT INTO `property` VALUES ('9', '1', '4');
INSERT INTO `property` VALUES ('11', '3', '4');
INSERT INTO `property` VALUES ('12', '4', '4');
INSERT INTO `property` VALUES ('13', '5', '4');
INSERT INTO `property` VALUES ('14', '7', '6');
INSERT INTO `property` VALUES ('15', '8', '6');
INSERT INTO `property` VALUES ('16', '9', '6');
INSERT INTO `property` VALUES ('17', '10', '6');
INSERT INTO `property` VALUES ('18', '9', '7');
INSERT INTO `property` VALUES ('19', '10', '7');
INSERT INTO `property` VALUES ('20', '8', '8');


таблица движение moves
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
DROP TABLE IF EXISTS `moves`;
CREATE TABLE `moves` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_actions` smallint(6) NOT NULL,             ----1 приход ---2 реализация
  `date_op` date NOT NULL,
  `id_goods` int(11) NOT NULL,
  `qty` int(11) NOT NULL,
  `price` decimal(10,0) NOT NULL,
  `cargo_payment` decimal(10,0) NOT NULL,
  `id_from` int(11) NOT NULL,
  `id_to` int(11) NOT NULL,
   primary key (id)
);




Пишу селект
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
  SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'sum(case when  = ''',
      sizes,
      ''' then 1 end) AS ',
      replace(sizes, ' ', '')
    )
  ) INTO @sql
from sizes;

SET @sql = CONCAT('SELECT goods.name,goods.model, ', @sql, ' from goods 
left join sales s
  on goods.id = s.goods_id
left join properties properties
  on properties.goods_id = s.goods_id
group by goods.name,goods.model');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;



Мне надо чтобы селектом отобразились общая количество товаров в таком виде
тоесть брать сумма количество брать из таблицы
sales признаком 1 приход - 2 расход=остаток
Код: sql
1.
2.
3.
                                         Размеры
    ID  NAME           MODEL    40  50  60  Total
     1  Salamender   GT-266    0   10    0    10



Не получается
Заранее благодарен
...
Рейтинг: 0 / 0
Помогите с запросом group_concat из 4 таблиц.
    #38355585
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.UlugbekМне надо чтобы селектом отобразились общая количество товаров в таком виде
тоесть брать сумма количество брать из таблицы
sales признаком 1 приход - 2 расход=остаток
Код: sql
1.
2.
3.
                                         Размеры
    ID  NAME           MODEL    40  50  60  Total
     1  Salamender   GT-266    0   10    0    10

Этот результат должен быть получен на именно тех данных, которые вводятся в таблицы приведёнными выше скриптами?
...
Рейтинг: 0 / 0
Помогите с запросом group_concat из 4 таблиц.
    #38355651
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот вариант решения (для обсуждения...) - http://sqlfiddle.com/#!2/9e2a3/3
...
Рейтинг: 0 / 0
Помогите с запросом group_concat из 4 таблиц.
    #38355841
mr.Ulugbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cygapb-007вот вариант решения (для обсуждения...) - http://sqlfiddle.com/#!2/9e2a3/3

Спасибо за помощь но
как сделать что показал в таком виде
Код: sql
1.
2.
3.
 
id name            model      43  41   9    8   total
2  salamander    gt-266     0    0   10  0    10
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с запросом group_concat из 4 таблиц.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]