У меня есть 2 стола
товары: Информация о товарах. Элементы имеют «обычный» или «цифровой» тип.mysql данные заказа из таблицы, используя отношения из другой таблицы
id | name | itemtype
CREATE TABLE IF NOT EXISTS `wares` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`itemtype` enum('usual','digital') NOT NULL DEFAULT 'usual',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
INSERT INTO `wares` (`id`, `name`, `itemtype`) VALUES
(1, 'ware1', 'usual'),
(2, 'ware2', 'usual'),
(3, 'ware3', 'usual'),
(4, 'ware4', 'usual'),
(5, 'ware5', 'usual'),
(6, 'ware6', 'digital'),
(7, 'ware7', 'usual'),
(8, 'ware8', 'digital'),
(9, 'ware9', 'usual'),
(10, 'ware10', 'digital');
отношения: таблица с отношениями между элементами из таблицы изделий. Некоторые предметы с типом "usual"
связанные с товаром с типом "digital"
. Не все элементы связаны.
id_usualware | id_digitalware
CREATE TABLE IF NOT EXISTS `relations` (
`id_usualware` int(11) NOT NULL,
`id_digitalware` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `relations` (`id_usualware`, `id_digitalware`) VALUES
(1, 6),
(4, 8),
(7, 10);
http://sqlfiddle.com/#!2/2831a/13
нужно выбрать данные из таблицы изделия используя таблицу отношения заказа ниже. Если элемент с типом "usual"
имеет отношение с товаром "digital"
, то этот цифровой элемент следует за этим "usual"
. Как я могу это сделать с помощью MySQL?
id | name | itemtype
1 | ware1 | 'usual'
6 | ware6 | 'digital'
2 | ware2 | 'usual'
3 | ware3 | 'usual'
4 | ware4 | 'usual'
8 | ware8 | 'digital'
5 | ware5 | 'usual'
7 | ware7 | 'usual'
10| ware10| 'digital'
9 | ware9 | 'usual'