我需要執行以下操作: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小提琴樣本? –