从db sql查询中选择

时间:2012-09-25 11:30:13

标签: sql select

我有这个问题:

$query = mysql_query ("SELECT *
                         FROM saledb.application
                       WHERE app_id = (
                                       SELECT app_id
                                         FROM saledb.applicationdetails
                                        WHERE is_hot = '1'
                                      ) LIMIT $Kvet,$Zet
                      ");

我有以下错误:

  

无法保存结果集   /home/lemondo/lemondosales.itnovations.ge/content/tpl/gtpl/main.php on   第68行

当我用MAX(app_id)更改选择项时,它可以工作,但我需要显示所有结果。我知道mysql无法在一个查询中选择meny ID,但我需要替代查询。

2 个答案:

答案 0 :(得分:4)

使用IN谓词代替=,如os:

SELECT * 
FROM saledb.application 
WHERE app_id IN
  (SELECT app_id 
   FROM saledb.applicationdetails 
   WHERE is_hot = '1');

答案 1 :(得分:0)

$query = mysql_query ("SELECT * FROM saledb.application WHERE app_id IN (SELECT app_id FROM saledb.applicationdetails WHERE is_hot = '1') LIMIT $Kvet,$Zet");

这应该可以解决问题。如果你留下'='并且子查询返回多行,你将得到该错误。要匹配saledb.application中结果集中包含app_id的所有行,您需要使用“IN”:)