我有这个问题:
$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,但我需要替代查询。
答案 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”:)