2014-09-02 21 views
1

我想檢查針對多個值的子查詢。 類似於:檢查針對多個值的子查詢

... WHERE (value1 OR value2) IN ([subquery]) 

上述行不起作用? 這甚至可能嗎? 如何做到這一點?

我現在使用一種解決方法,但看起來效率不高。

SELECT id FROM project 
     WHERE 
     ( subcategory IN 
      (
       SELECT id 
       FROM other_table WHERE value LIKE ? 
      ) 
      OR subcategory2 IN 
      (    
       SELECT id 
       FROM other_table WHERE value LIKE ? 
      ) 
     ) 
+2

你可以用'LEFT JOIN' – 2014-09-02 09:02:58

+0

認沽值1和值2在你的子查詢的WHERE – Bobby 2014-09-02 09:03:59

回答

1

一種方法是轉換爲exists子查詢:

where exists 
     (
     select * 
     from other_table 
     where value like ? 
       and id in (subcategory, subcategory2) 
     )