本当に簡単なことだと思いますが、解決する方法が見つかりません。これが私のクエリです。
SELECT A.*,MAX(A.id) as X
FROM A
INNER JOIN B ON(B.id=A.id)
WHERE B.y > IF(X < 75, 0, 100)
mysql は、列 'X' が不明であるというエラーを表示します。if 句の 'X' を に置き換えたくありません。これは、 の間のすべての値の比較SELECT MAX(A.id) from A
に対してクエリを実行すると思うため、クエリの速度が大幅に低下するためです。この種のアプローチが不可能であり、私が本当に期待していない場合は、最初に最大スカラー値を取得してから、上記のクエリに入れる 2 つの異なるクエリを呼び出す必要があります。単一のクエリで解決できるかどうかは疑問です。SELECT MAX(A.id) from A
B.y
同様の質問がありますが、まだ解決されていないようです: https://stackoverflow.com/questions/9052196/mysql-error-1054-unknown-column-on-clause
それはスコープまたは同様のものに関連していますか?