Мне нужно выполнить следующие действия:MySQL «В» состоянии с подзапроса
SELECT * FROM mp_sizes
WHERE size_id IN(SELECT size_ids FROM mp_size_categories
WHERE category_id = '3' AND sub_category_id = '5');
Когда я запускаю ниже запрос он вернуть мне 3 записи.
SELECT * FROM mp_sizes WHERE size_id IN(3,2,4);
Также, когда я запускаю запрос, он показывает мне правильный результат.
SELECT size_ids FROM mp_size_categories
WHERE category_id = '3' AND sub_category_id = '5';
Приведенный выше запрос дает результат 3, 2, 4
.
Но когда я использую это в подпросе, он возвращает только одну запись. Он возвращает только данные о размере первого значения (3).
Как я могу получить результаты всех трех размеров (3, 2, 4)?
SELECT * FROM mp_sizes a ВЛЕВОЕ ПРИСОЕДИНЕНИЕ mp_size_categories b ON b.size_ids = a.size_id ГДЕ B.category_id IN (3, 5); - Не тестировалось, надеюсь, это поможет. –
Я не мог так использовать. Поскольку поле size_ids в таблице mp_size_categories является полем varchar. И у него нет ни одного целого числа, но у него есть все идентификаторы размера с запятой отдельно, как у 3,2,4 – siddiq
у вас есть образец скрипта sql? –