Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2014, 22:17   #1
woojin
Пользователь
 
Регистрация: 20.10.2013
Сообщений: 32
Вопрос комбинированный запрос

имеем запрос
Код:
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
и три таблицы
таблица категорий
Код:
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;
таблица блюд
Код:
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;
и таблица деталей заказа
Код:
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;
который выводит вот такие данные как на картинке ScreenShot 192.png
а надо сделать так чтобы получилось как на картинке ScreenShot-192-1.png
проще говоря чтобы в выводе было отображение зависящее от двух колонок category_OREDERING и item_OREDERING

подскажите каким образом изменить запрос?

P.S. конечно было бы проще изменить начальный алгоритм добавления записей в таблицу, с правильным порядком к колонке basketgroup, но т.к. заказов огромное множество, переписать в ручную все записи просто не представляется возможным
Изображения
Тип файла: jpg ScreenShot 192.jpg (10.1 Кб, 132 просмотров)
Тип файла: jpg ScreenShot-192-1.jpg (9.5 Кб, 124 просмотров)

Последний раз редактировалось woojin; 10.01.2014 в 22:25.
woojin вне форума Ответить с цитированием
Старый 11.01.2014, 06:53   #2
woojin
Пользователь
 
Регистрация: 20.10.2013
Сообщений: 32
Хорошо

всем спасибо)))
Цитата:
Сообщение от woojin Посмотреть сообщение
P.S. конечно было бы проще изменить начальный алгоритм добавления записей в таблицу, с правильным порядком к колонке basketgroup
так и пришлось сделать, заказчик сказал, пусть новые заказы сортируются по новому
woojin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Комбинированный тип данных. ProgrammiST-_- Паскаль, Turbo Pascal, PascalABC.NET 8 27.11.2011 08:10
Комбинированный тип данных Black_butterfly Помощь студентам 1 14.04.2011 11:29
Комбинированный тип данных ne4eHUce Помощь студентам 3 11.04.2011 01:36
Комбинированный тип данных Nightt Помощь студентам 0 19.06.2009 18:25