0

この例では、クエリに問題があります。

 SELECT pm.name,
       pm.pre_id,
       pm.pgs_id,
       pm.link,
       pm.del,
       pm.maz_kaina,
       pm.int_kaina,
       pm.d1_kaina,
       pm.d2_kaina,
       pm.d3_kaina,
       pm.pvm,
       pm.vnt,
       pm.gamintojas,
       pm.akcija,
       pm.akc_kaina
FROM   `prekes_main` AS pm
       INNER JOIN (SELECT charak_pre.pr_id
                   FROM   charak_pre
                   WHERE  charak_pre.cha_id = 206
                          AND charak_pre.reiksme = 'Parfumuotas vanduo'
                          AND charak_pre.pr_id = pm.pre_id) AS reikiamos_pre0
               ON reikiamos_pre0.pr_id = pm.pre_id
WHERE  pm.pgs_id = '2431'
ORDER  BY pm.del DESC,
          int_kaina ASC
LIMIT  0, 18  

これを実行しようとすると問題が発生しINNER JOINます。これは私が得たエラーです:

SQL Error (1054): Unknown column 'pm.pr_id' in WHERE clause.

エラーが発生する場所: and charak_pre.pr_id = pm.pr_id。これで、キーcharak_pre.pr_idとprekes_main.pre_idによって、charak_preテーブル魔女がprekes_main行に等しい行を選択したいと思います。

4

2 に答える 2

0

サブクエリなしで書くと、非効率的なことのように思えますが、テストしていません。代わりに通常の結合を行います。

SELECT  pm.name, 
        pm.pre_id, 
        pm.pgs_id, 
        pm.link, 
        pm.del, 
        pm.maz_kaina, 
        pm.int_kaina, 
        pm.d1_kaina, 
        pm.d2_kaina, 
        pm.d3_kaina, 
        pm.pvm, 
        pm.vnt, 
        pm.gamintojas, 
        pm.akcija, 
        pm.akc_kaina
FROM    `prekes_main` as pm
        INNER JOIN charak_pre charak_pre  as reikiamos_pre0 
            ON reikiamos_pre0.pr_id = pm.pre_id AND charak_pre.cha_id = 206 and 
                    charak_pre.reiksme = 'Parfumuotas vanduo'
WHERE   pm.pgs_id = '2431' 
ORDER   BY pm.del DESC, 
        int_kaina ASC 
LIMIT 0,18
于 2013-04-08T13:05:35.133 に答える