我需要执行以下操作:
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)的结果?
答案 0 :(得分:0)
您是否使用JOIN
尝试过? (这更快)
SELECT * FROM mp_sizes, mp_size_categories
WHERE size_id = size_ids AND category_id = '3'
AND sub_category_id = '5';
答案 1 :(得分:0)
我认为您应该使用以下查询与加入来获得完全相同的结果,而不是使用嵌套查询,它应该比子查询更快:
select * from mp_sizes as mpsizes
join mp_size_categories as mpsizecategories
on mpsizes.size_id = mpsizecategories.size_ids
where mpsizecategories.category_id = '3'
AND mpsizecategories.sub_category_id = '5';