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 が 1 つのクエリで多くの ID を選択できない問題がどこにあるのかはわかっていますが、別のクエリが必要です。

4

2 に答える 2

4

like osINの代わりに述語を使用します。=

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");

これでうまくいくはずです。「=」を残してサブクエリが複数の行を返すと、そのエラーが発生します。結果セットに app_id を持つ salesdb.application のすべての行を一致させるには、「IN」を使用する必要があります:)

于 2012-09-25T11:34:49.347 に答える