mysqlのサブクエリの結果に条件がある
-
26-09-2019 - |
質問
このようなクエリを実行しようとしています
SELECT a, b , c, (SELECT INNULL(x,y)) as mycol WHERE mycol < 400 ;
しかし、エラーが発生します
#1054 - Unknown column 'mycol' in 'where clause'
これを行う正しい方法は何でしょうか?
ありがとう。
解決
それはとても入っています MS SQL, 、同じ問題があると思います MySQL.
変えてみてください どこ に 持っている. どこ 句では、名前を変更した列は表示されません。
持っている (mycol < 400 AND a > 5) のように、WHERE と同じように機能します。
グループ化 前にあるはずです 持っている.
リンク内の例を確認してください。
他のヒント
@hgulyan私はあなたの答えを疑います。それはWHERE
句を使用してからの防止1は、むしろそれがサブクエリであることを名前の変更ではありません。だから私は、クエリを持って言うことができます:
SELECT id as ID FROM user WHERE ID > 10;
これは完全に細かい作業になるだろう。
今、私は1つの以上のクエリを持って言うことができます:
SELECT name, (SELECT id FROM user_detail WHERE user_id = 20) as ID FROM user WHERE ID > 19;
この特定のクエリがようなエラーが生成されます
不明のカラムID
だから、それはサブクエリとカラムのエイリアスだけでなく、カラムのエイリアスを使用してのことです。
したがって、この場合には、あなたはHAVING
の代わりWHERE
を使用する必要があります。
所属していません StackOverflow