TheGP
Новичок
Есть две таблицы
products: crosses
___________ ___________________
| id | name | | product_id | cross_id |
В первой таблице продукты, во второй - связи продуктов с другими продуктами. То есть продукт 1 имеет связь с продуктом 2 и т.п.)
Мне нужно выбрать сначала несколько продуктов по совпадению по имени, а потом вывести связанные продукты, с этими продуктами(которые были найдены по имени). Можно организовать все это в одном запросе?
У меня вышел такой запрос, но он почему то не работает
Вот дампы таблиц:
Не подскажите что может быть в моем запросе не верно, или может вообще не так это делает?
products: crosses
___________ ___________________
| id | name | | product_id | cross_id |
В первой таблице продукты, во второй - связи продуктов с другими продуктами. То есть продукт 1 имеет связь с продуктом 2 и т.п.)
Мне нужно выбрать сначала несколько продуктов по совпадению по имени, а потом вывести связанные продукты, с этими продуктами(которые были найдены по имени). Можно организовать все это в одном запросе?
У меня вышел такой запрос, но он почему то не работает
PHP:
SELECT * FROM `products` AS `p` WHERE name='продукт 1' OR `p`.id IN (SELECT `c`.cross_id FROM `crosses` AS `c` WHERE `c`.product_id=`p`.id)
PHP:
DROP TABLE IF EXISTS `crosses`;
CREATE TABLE `crosses` (
`product_id` int(11) NOT NULL,
`cross_id` int(11) NOT NULL,
KEY `product_id` (`product_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
INSERT INTO `crosses` (`product_id`, `cross_id`) VALUES
(1, 2);
DROP TABLE IF EXISTS `products`;
CREATE TABLE `products` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(32) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3 ;
INSERT INTO `products` (`id`, `name`) VALUES
(1, 'продукт 1'),
(2, 'продукт 2');