2

我有一个像这样的查询

select prod_name 
from ct_products 
where id in ( (select prod_id 
               from ct_recommend 
               where cat_id=12) ) and status > 0

但是,因为子查询返回一个看起来像 1,2,3 的字符串而不是结果行,所以查询不能按应有的方式工作。有什么方法可以格式化子查询结果,使其在 IN 子句中起作用?

谢谢!

4

2 回答 2

5

试试这个,

select prod_name 
from ct_products 
where FIND_IN_SET(ID,(select prod_id from ct_recommend where cat_id=12)) <> 0 
      and status > 0
于 2012-12-08T07:29:06.047 回答
0

试试这个:

SELECT prod_name 
FROM ct_products cp 
WHERE STATUS > 0 AND 
      EXISTS (SELECT * FROM ct_recommend cr WHERE cp.id = cr.prod_id AND cat_id=12);
于 2012-12-08T09:10:35.257 回答