Проблема с созданием структуры или запроса...

ISergeyV

Новичок

Не силён в базах данных, это всё на что меня хватило, в смысле нарисовать такую схему.
Вопрос в следующем - как выбрать все товары из категории Телевизоры? SELECT * FROM `ТЕЛЕВИЗОРЫ`, `Стир.Машины`,`Ноутбуки` WHERE `id_категории` = 2
Понимаю что это совершенно не правильно но на правильно у меня не хватает знаний и опыта, помогите.
Спасибо!
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
И какая задача стоит? Сам запрос на выборку всего с категорией 2, это неверно. Не может быть у них одинаковой категории, разве что "электротовары"... Если ты пишешь магазин, посмотри как сделано у других
 

ISergeyV

Новичок
Проблема в том что у меня для каждого товара своя таблица - так как товары имеют разные свойства. Не могу сделать правильную структуру база данных ( возможно это как то организовывается через третью таблицу?
 
Последнее редактирование:

ISergeyV

Новичок
А что если название категории будет служить именем таблицы товара?
 

ISergeyV

Новичок
так понимаю одни дети кроме картинок от вас ничего не дождешься....
изменил структуру

это я накидал из тех знаний которые успел впитать об sql за полтора дня...

Изначально нам дано только id - категории, к примеру id = 2.
DECLARE @vTableName varchar(50)
SET @vTableName = (SELECT `TableName`.`TableName` FROM `TableName` WHERE id = (SELECT `id_TableName` FROM `Категории` WHERE id = 2))
EXECUTE(' SELECT * FROM ['+@vTableName +'] WHERE id_cat = 2 ')

Как запихнуть имя таблицы подсмотрел тут https://stackoverflow.com/questions/10030486/sql-server-2008-select-from-variable
но как видно из ответа "but if you're structuring your tables in a way where you don't know the table name ahead of time, it might benefit you to rethink your schema." моя структура не правильна
Гуру БД вы где? помогите с этой чепухой
 

WMix

герр M:)ller
Партнер клуба
юноша, вы бредите, начнем с самого начала, результатом запроса будет/должна быть только таблица. те разные структуры в один запрос не обьеденишь!
но если подогнать все таблицы в одну структуру (либо путем уменьшения полей до тех которые есть в каждой табличке либо увеличением полей до полей любой из таблиц) то получится. но второй вариант полное говно, а первый вариант лучше реализовать иначе: одна таблица продукт которая описывает любой продукт который находится в некой категории. а особености продукта можно опять таки реализовать по разному, или твой способ, который правильней с точки зрения базы но утопичный с точки зрения программирования, или EAV который наоборот, кривой для базы но удобен для решения любого продукта одним кодом!
 
Сверху