2

我有这个查询:

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

我有以下错误:

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

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

4

2 回答 2

4

使用IN谓词而不是=像 os:

SELECT * 
FROM saledb.application 
WHERE app_id IN
  (SELECT app_id 
   FROM saledb.applicationdetails 
   WHERE is_hot = '1');
于 2012-09-25T11:31:26.520 回答
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”:)

于 2012-09-25T11:34:49.347 回答