我需要执行以下操作:MySQL的“IN”的条件与子查询
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种尺寸(3,2,4)的结果?
SELECT * FROM mp_sizes a LEFT JOIN mp_size_categories b ON b.size_ids = a.size_id WHERE b.category_id IN(3,5); - 未经测试,希望这有助于 –
我不能这样使用。因为mp_size_categories表中的size_ids字段是varchar字段。它没有一个整数,但它具有逗号分开的所有大小ids像3,2,4 – siddiq
你有一个SQL小提琴样本? –