У меня есть две таблицы.mysql group_concat
продукты
id title image_ids
---------------------
1 myproduct 1,2,3
изображения
id title file_name
-------------------------
1 myimage myimage.jpg
2 myimage2 myimage2.jpg
3 myimage3 myimage3.jpg
Я хочу запросить, так что имена изображений объединяются в одно поле для каждой ссылки продукта.
Этот запрос не работает
SELECT products.title,
products.image_ids,
GROUP_CONCAT(images.file_name)
FROM products
LEFT JOIN images ON images.id IN (products.image_ids)
WHERE products.id = 1
GROUP BY products.id
Это один делает:
SELECT products.title,
products.image_ids,
GROUP_CONCAT(images.file_name)
FROM products
LEFT JOIN images ON images.id IN (1,2,3)
WHERE products.id = 1
GROUP BY products.id
И дает желаемые результаты
title image_ids file_names
--------------------------------------------------------------
myproduct 1,2,3 myimage.jpg,myimage2.jpg,myimage3.jpg
Почему не первая работа запроса при его спрашивает то же самое, что и второй запрос, и как я могу заставить его работать.
Что не-sargable среднего – andrew
(Из википедии). В реляционных базах данных условие (или предикат) в запросе считается способным, если механизм СУБД может использовать индекс для ускорения выполнения запроса (используя индексные запросы, а не индексы). Этот термин получен из сокращения Search ARGument Able. –
Это отлично поработало. – andrew