[解決済み】MySQLクエリのWHERE句でカラムエイリアスを使用するとエラーが発生する。
2022-04-04 17:46:59
質問
以下のようなクエリを実行しているのですが、このようなエラーが発生します。
#1054 - 'IN/ALL/ANY サブクエリ'内の不明な列 'guaranteed_postcode'
SELECT `users`.`first_name`, `users`.`last_name`, `users`.`email`,
SUBSTRING(`locations`.`raw`,-6,4) AS `guaranteed_postcode`
FROM `users` LEFT OUTER JOIN `locations`
ON `users`.`id` = `locations`.`user_id`
WHERE `guaranteed_postcode` NOT IN #this is where the fake col is being used
(
SELECT `postcode` FROM `postcodes` WHERE `region` IN
(
'australia'
)
)
私の質問は、なぜ同じDBクエリのWhere句で偽のカラムを使用することができないのでしょうか?
どうすればいいですか?
GROUP BY、ORDER BY、またはHAVING句では、カラム・エイリアスのみを使用することができます。
標準SQLでは 列のエイリアスを参照するのは、WHERE 節があります。この制限は なぜなら、WHERE コードが を実行した場合、カラムの値はまだ が決定される。
コピー元 MySQL ドキュメント
コメントで指摘されているように、代わりにHAVINGを使用するとうまくいくかもしれません。この質問にも目を通しておいてください。 WHEREとHAVINGの比較 .
関連
-
[解決済み】MySQLのエラーコードです。MySQL WorkbenchでUPDATE中に1175のエラーが発生しました。
-
[解決済み] エラー 1044 (42000)。データベース 'db' へのユーザー ''@'localhost'' のアクセスが拒否されました。
-
[解決済み] mysqladminのフラッシュホストでブロックを解除する方法
-
[解決済み] エラーコード1111。グループ関数の無効な使用
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] MySQLでコマンドラインを使用してユーザーアカウントのリストを取得するにはどうすればよいですか?
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?
-
[解決済み] INNER JOIN ON vs WHERE句
-
[解決済み] MYSQLでMAX(列の値)、PARTITIONで別の列で行を選択するにはどうすればよいですか?
-
[解決済み] SQL JOIN - WHERE句とON句の比較
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】1052:フィールドリストの列「id」が曖昧である
-
[解決済み】mysql.plugin テーブルを開くことができません。mysql_upgradeを実行して作成してください。
-
[解決済み】MySQL 派生テーブルはすべて独自のエイリアスを持つ必要があります。
-
コマンドでmysqlに接続中、'mysql'が内部または外部コマンドとして認識されない エラーは解決されました。
-
[解決済み】MySQL エラー #1133 - ユーザー テーブルに一致する行が見つかりません。
-
[解決済み] MySQL エラー: キーの長さがないキー指定
-
[解決済み] mysql 拡張は非推奨で、将来的に削除されます: 代わりに mysqli か PDO を使ってください [重複] 。
-
[解決済み] MySQLです。テーブルを作成できません (errno: 150)
-
[解決済み] 各単語の最初の文字を大文字にする(既存のテーブルの場合
-
[解決済み] Mysql: const テーブルを読み込んだ後、不可能な場所に気づいた。