1

だから私はこれを持っています:

SELECT p.plantnaam,o.levcode,o.offerteprijs
FROM plant p, offerte o
JOIN (SELECT plantcode , MIN(offerteprijs) AS offprijs 
      FROM offerte
      GROUP BY plantcode) s
  ON s.plantcode = p.plantcode
  AND s.offprijs = o.offerteprijs
ORDER BY p.plantnaam,l.levcode

明らかに 6 行目にある p.plantcode は、突然魔法のように無効な識別子になっています。どうしてこれなの?そして、まったく同じテーブルの他のすべての人がその時点まで完全に問題ないのはなぜですか?

4

1 に答える 1

5

問題は、JOIN を混在させていることです。暗黙的結合と明示的結合の両方があります。ON 句を使用した明示的な JOIN 構文は、コンマを使用した暗黙的な結合よりも優先されます。その結果、plantおよびofferteテーブルのエイリアスは ON 句で使用できなくなります。全体で同じ JOIN タイプを使用してみてください。

SELECT p.plantnaam, o.levcode, o.offerteprijs
FROM 
(
  SELECT plantcode , MIN(offerteprijs) AS offprijs 
  FROM offerte
  GROUP BY plantcode
) s
INNER JOIN plant p
   ON s.plantcode = p.plantcode
INNER JOIN offerte o
   ON s.offprijs = o.offerteprijs
ORDER BY p.plantnaam, l.levcode
于 2013-05-07T22:35:14.827 に答える