0

以下を実行する必要があります。

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

しかし、サブクエリでそれを使用すると、1 つのレコードのみが返されます。最初の値 (3) のみのサイズ詳細を返します。

3 つのサイズ (3、2、4) すべての結果を取得するにはどうすればよいですか?

4

2 に答える 2

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';
于 2013-08-26T09:27:32.513 に答える