@Anchor00

SQL как сделать запрос(ы) в данной ситуации?

Есть таблица объектов товаров (спортивного магазина). В ней основные поля, общие для всех типов товаров. Есть несколько таблиц-типов объектов(майки, обувь,...спортпит) которые "наследуются" от основной таблицы. Связь между объектом в основной таблице и таблице-типе "один-к-одному". В основной табл. есть поле "type"

$q = '
	SELECT
		*
	FROM
		catalog_product prod
			INNER JOIN
		catalog_product_type_shirt prod_type
	ON
		prod.id=prod_type.product_id';


В этом запросе выборка происходит из ЗАРАНЕЕ ИЗВЕСТНОЙ таблицы-типа.
а)При выборке по id мы заранее не знаем к какому типу этот объект относится
б)В одной категории может быть товары разных типов. А значит опять же делая запрос на выборку по категории, мы не знаем из каких таблиц выбрать данные.
Вопрос: для того чтобы выбрать объект(ы) обязательно ли делать ДВА запроса к БД? Т.е. один чтобы выбрать type в основной таблице. А второй, составляем на основе полученных данных и уже тогда отправляем.
Или можно это сделать в ОДНОМ запросе?

*СУБД - MySQL
**Если нет, можно ли сделать это "грязными способами", просто любопытсва ради=)
  • Вопрос задан
  • 335 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Смотря что считать грязными способами. Некоторые вон ради производительности движки переписывают, или вообще свои СУБД разрабатывают.
А так можно через IF и подзапросы, например.
stackoverflow.com/questions/17723808/mysql-if-stat...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы