|
комбинированный запрос
#38522659
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
|
|
|
|
имеем запрос
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
SELECT
o.*,
o.price * (1 + o.vat_percent / 100.0) * o.count AS total,
i.cat_id AS category_ID,
i.id AS item_ID,
c.ordering AS category_OREDERING,
i.ordering AS item_OREDERING
FROM smartorder_orders_details o
INNER JOIN smartorder_items i
ON o.name = i.name
INNER JOIN smartorder_categories c
ON i.cat_id = c.id AND o.category_name = c.name
WHERE o.order_id IN (8)
ORDER BY o.order_id, o.basketgroup
и три таблицы
таблица категорий
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
CREATE TABLE smartorder_categories (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(100) DEFAULT NULL,
ordering int(11) DEFAULT 0,
published tinyint(1) DEFAULT 1,
type tinyint(4) NOT NULL DEFAULT 0 COMMENT 'тип категории',
type_cat tinyint(4) NOT NULL DEFAULT 0 COMMENT 'тип содержимого',
PRIMARY KEY (id),
INDEX IX_ordering (ordering)
)
ENGINE = MYISAM
AUTO_INCREMENT = 21
AVG_ROW_LENGTH = 41
CHARACTER SET utf8
COLLATE utf8_general_ci;
таблица блюд
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.
CREATE TABLE smartorder_items (
id int(11) NOT NULL AUTO_INCREMENT,
cat_id int(11) DEFAULT NULL,
name varchar(250) DEFAULT NULL,
description text DEFAULT NULL,
price float(12, 2) DEFAULT NULL,
price2 float(12, 2) DEFAULT NULL COMMENT 'вторая цена',
discount_price float(12, 2) DEFAULT NULL,
published tinyint(1) DEFAULT 1,
ordering int(11) DEFAULT 0,
vat_percent float(12, 2) DEFAULT NULL,
standard varchar(255) DEFAULT NULL,
business varchar(255) DEFAULT NULL,
units varchar(255) DEFAULT NULL,
with_garnish tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (id),
UNIQUE INDEX id (id),
INDEX IX_ (cat_id),
INDEX ordering (ordering)
)
ENGINE = MYISAM
AUTO_INCREMENT = 1069
AVG_ROW_LENGTH = 218
CHARACTER SET utf8
COLLATE utf8_general_ci;
и таблица деталей заказа
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
CREATE TABLE smartorder_orders_details (
id int(11) NOT NULL AUTO_INCREMENT,
order_id int(11) DEFAULT NULL,
basketgroup int(11) DEFAULT NULL,
type enum ('i', 't', 'c') DEFAULT NULL,
count int(11) DEFAULT NULL,
name varchar(250) DEFAULT NULL,
price float(12, 5) DEFAULT NULL,
discount_price float(12, 5) DEFAULT NULL,
category_name varchar(250) DEFAULT NULL,
status char(1) DEFAULT '0',
vat_percent float(12, 5) DEFAULT NULL,
standard_business enum ('s', 'b', '0') NOT NULL DEFAULT '0' COMMENT 'тип блюда (стандарт/бизнес)',
PRIMARY KEY (id),
INDEX order_id (order_id),
INDEX status (status)
)
ENGINE = MYISAM
AUTO_INCREMENT = 76
AVG_ROW_LENGTH = 90
CHARACTER SET utf8
COLLATE utf8_general_ci;
который выводит вот такие данные как на картинке
а надо сделать так чтобы получилось как на картинке
проще говоря чтобы в выводе было отображение зависящее от двух колонок category_OREDERING и item_OREDERING
подскажите каким образом изменить запрос?
P.S. конечно было бы проще изменить начальный алгоритм добавления записей в таблицу, с правильным порядком к колонке basketgroup , но т.к. заказов огромное множество, переписать в ручную все записи просто не представляется возможным
|
|
|