Как связать правильно таблицы mysql?

157
08 января 2020, 08:00

MySQL версии 5.7.20.

Не получается связать таблицы. Нужно чтобы в таблице categories, были связаны поля id и parent_id. Нужно выводить название категории. Как правильно сформировать запрос? Вот мой запрос:

SELECT * 
FROM products 
LEFT JOIN categories AS i1 ON products.id_category = i1.id 
LEFT JOIN categories as i2 ON i2.parent_id = i1.id;

Answer 1

Для строго двухуровневой системы категорий:

SELECT p.name,
       i1.name subcategory,
       i2.name category 
FROM products p
LEFT JOIN categories AS i1 ON products.id_category = i1.id 
LEFT JOIN categories as i2 ON i1.parent_id = i2.id

Если каждый продукт гарантированно имеет ссылку на существующую подкатегорию, а та столь же гарантированно имеет ссылку на категорию (поддержано внешними ключами), LEFT JOIN заменить на INNER JOIN.

READ ALSO
Please run mysql_upgrade в MySQL логах

Please run mysql_upgrade в MySQL логах

Начал получать такое сообщение в логах мускуляМожет кто-то подсказать что это и если запустить mysql_upgrade не приведет ли это к крашу БД?

180
Добавление новой записи несмотря на Update on duplicate key и UNIQUE INDEX

Добавление новой записи несмотря на Update on duplicate key и UNIQUE INDEX

Есть следующая таблица (с названием table0):

145
Форматирование дерева таблицей

Форматирование дерева таблицей

Есть дерево такого типа

158
Аудиопоток по нажатию на кнопку

Аудиопоток по нажатию на кнопку

Мне надо сделать так что-бы по нажатию на <a>Музыка</a> начинал воспроизводится аудиопоток

134