ホームページ >データベース >mysql チュートリアル >「on 句」に不明な列「column_name」があります - MySQL エラーを解決する方法: on 句に不明な列があります

「on 句」に不明な列「column_name」があります - MySQL エラーを解決する方法: on 句に不明な列があります

王林
王林オリジナル
2023-10-05 08:13:241677ブラウズ

Unknown column \'column_name\' in \'on clause\' - 如何解决MySQL报错:on子句中的未知列

タイトル: 'on 句' の不明な列 'column_name' - MySQL エラーの解決方法: on 句の不明な列、具体的なコード例が必要です

記事本文:

MySQL は、さまざまなタイプのアプリケーション開発で広く使用されている、一般的に使用されているオープン ソースのリレーショナル データベース管理システムです。ただし、MySQL を使用する過程で、さまざまなエラーや問題が発生することがあります。よくあるエラーの 1 つは、「Unknown columns 'column_name' in 'on Clause'」 (on 句内の不明な列) です。

MySQL で結合クエリ (JOIN) ステートメントを実行し、不明なカラム名が on 句で参照されると、MySQL はこのエラーを報告します。このエラーは通常、列名のスペルミス、対応するテーブルで定義されていない列名、または別名の誤った使用によって発生します。

それでは、この問題をどうやって解決すればいいのでしょうか?一般的な解決策は次のとおりです。

  1. 列名のスペルが正しいかどうかを確認します。まず、コード内の列名がデータベース内の列名のスペルと一致しているかどうかを注意深く確認する必要があります。大文字と小文字が正しく一致するかどうかに注意してテーブルを作成します。矛盾している場合は、コード内の列名を正しいスペルに変更する必要があります。

たとえば、「id」と「name」という名前の列を含む「users」というテーブルがあるとします。このエラーは、結合クエリで列名「id」を「Id」と入力した場合に報告されます。正しい書き方は、カラム名「id」を「Id」に変更することです。

SELECT *
FROM users
JOINorders ON users.Id =orders.user_id;

正しい書き方は次のとおりです:

SELECT *
FROM users
JOINorders ON users.id =orders.user_id;

  1. 列名が正しいテーブルに定義されていることを確認します。スペルに問題がないことが確認できた場合は、列名が対応するテーブルですでに定義されていることを確認する必要があります。同様に、テーブル名と列名がデータベース内の定義と一致していることを再確認してください。

たとえば、「user_id」という名前の列を含む「orders」という名前のテーブルがあるとします。ただし、接続クエリで列名「user_id」を「customer_id」として記述すると、このエラーが報告されます。この時点で、列名を正しいスペルに変更する必要があります。

SELECT *
FROM users
JOINorders ON users.id =orders.customer_id;

正しい書き方は次のとおりです:

SELECT *
FROM users
JOINorders ON users.id =orders.user_id;

  1. テーブル エイリアスを使用するときは、参照方法に注意してください。テーブル エイリアスは、結合クエリで単純化するために使用される場合があります。コード。ただし、テーブルの別名を使用する場合、on 句で列名を参照するときに別名の接頭辞が正しく使用されていない場合にも、このエラーが発生する可能性があります。

たとえば、コードを簡素化するためにテーブル エイリアスを使用するとします。

SELECT *
FROM users AS u
JOINorders AS o ON u.id =orders . user_id;

この時点で、on 句で列名を参照するときは、元のテーブルのテーブル名 "users" の代わりに、正しいエイリアス接頭辞 "u" を使用する必要があります。

上記の方法により、MySQL エラー「Unknown columns 'column_name' in 'on Clause'」(on 句内の不明な列) の問題を解決できます。同時に、このエラーと解決策をよりよく理解するために、具体的なコード例を以下に示します。

サンプル コード:

CREATE TABLE users (
id INT PRIMARY KEY ,
name VARCHAR(50)
);

CREATE TABLEorders (
id INT PRIMARY KEY,
user_id INT,
order_date DATE
);

INSERT INTO users VALUES (1, 'Alice');
INSERT INTO users VALUES (2, 'Bob');
INSERT INTO order VALUES (1, 1, '2022-01-01') ) ;
INSERT INTO order VALUES (2, 2, '2022-01-02');

SELECT *
FROM users
JOIN 注文 ON users.id =orders.user_id;

この例では、「users」という名前のテーブルと「orders」という名前のテーブルを作成し、ユーザー ID で接続します。結合クエリでは、エラーを避けるために正しい列名と別名プレフィックスを使用しました。

要約すると、MySQL エラー「'on 句' に不明な列 'column_name'」を解決するには、列名がテーブルに定義されているかどうか、列名のスペルに注意する必要があります。 、エイリアスを使用する場合の参照方法について説明します。コードを注意深く確認して正しく変更することで、このエラーを回避し、結合クエリ ステートメントを正常に実行できます。

以上が「on 句」に不明な列「column_name」があります - MySQL エラーを解決する方法: on 句に不明な列がありますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。