2012-09-25 296 views
2

選擇我有這個疑問:從數據庫SQL查詢

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

和我有以下錯誤:

Unable to save result set in /home/lemondo/lemondosales.itnovations.ge/content/tpl/gtpl/main.php on line 68

當我改變選擇項與MAX(APP_ID),它的工作原理,但我需要演出所有結果。我知道在哪裏是問題MySQL不能選擇在一個查詢曼尼ID,但我需要替代查詢。

回答

4

使用IN謂語,而不是像= OS:

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

感謝它的工作原理。 – Dest

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」:)