MySQL запрос для получения списка элементов со ссылкой на другую таблицу
У меня есть такой стол
+ ---- + ------- + ------------- + | id | предметы | имя | +----+-------+-------------+ | 1 | 1,2,3 | горячие предложения | | 2 | 2,3,4 | предложения | + ---- + ------- + ------------- +
где элементы являются идентификатором продукта
вот таблица продуктов (мини-версия)
+ ----------- + -------------------- + | продукт | название продукта | +-----------+--------------------+ | 1 | Sony Mobile | | 2 | iphone 4s | | 3 | ноутбук Dell v1 | | 4 | Самсунг Мышь | + ----------- + -------------------- +
мне нужно получить результат в виде массива элементов с именем ex [горячие предложения =>[(1,sony mobile),(2,iphone 4s),(3, ноутбук Dell v1) ], предложения =>[-]]
можно добиться этого в (MYSQL) хранимой процедуре, если нет, как я могу добиться этого с минимальным количеством запросов: примечание: первая таблица будет иметь максимум 6 строк
1 ответ
Вы можете использовать join
с find_in_set()
:
select t.id, t.name, p.productname
from yourtable t
join products p on find_in_set(p.productid, t.items)
Как примечание, я бы рекомендовал рассмотреть вопрос о нормализации базы данных. Лучше создать еще одну 1-n таблицу для хранения значений, разделенных запятыми.