2016-04-09 7 views
-2

enter image description hereSQLエラー1054(42S22):不明な列...なぜそれが不明ですか?

高輝度部分でどこが間違っていたかを知りたいですか? ありがとうございます!

+0

uは列名をコミットしましたか? –

+0

私はそれを理解しています。 –

+0

更新comp575_booksは、comp575_authors \tセットcomp575_books.publisher_id = 1 \tここcomp575_books.author_id = comp575_authors.author_idと( 'マーカス'、 'ロバート')で \t comp575_authors.first_name。 –

答えて

0

おそらく、comp575_book.author_idとcomp575_author.author_idを比較しようとするとエラーが発生します。ご覧のとおり、comp575_authorはデータベース上の有効なテーブルではありません。

+0

更新comp575_booksは、comp575_books.publisher_id \tセットをcomp575_authors = 1 \tここcomp575_books.author_id = comp575_authors.author_idと \t comp575_authors.first_name = 'ロバート' = 'マルクス' またはcomp575_authors.first_name。 –

+0

私はこのコマンドを使用して、すべてのpublisher_idが1に変わります。それでも私が望む結果ではありません.... –

+0

これは私が言ったことがわかっていませんエラー "不明な列"エラーを削除します。 –

1

まず最初に、画像をリンクするのではなく、リクエストにSQLと結果をテキストとして表示してください。一部の人はブラウザの制限によりリンクを開くことができません。また、画像コンテンツを検索することもできません。クエリを試してみたい場合は、コピーして貼り付けることはできません。ついに画像リンクが無効になることがあります。リクエストを編集し、SQLと結果をテキストとして表示してください。

とにかく、元のエラーについて:エラーメッセージは、どのフィールドが不明であるかを示します。したがって、単に表とその列名を見て、タイプミスをチェックしてください。

更新クエリについては、ANDORよりも優先されます。だから、:

update comp575_books, comp575_authors 
set comp575_books.publisher_id=1 
where comp575_books.author_id = comp575_authors.author_id 
    and comp575_authors.first_name = 'Markus' or comp575_authors.first_name = 'Robert'; 

where (comp575_books.author_id = comp575_authors.author_id 
    and comp575_authors.first_name = 'Markus') or comp575_authors.first_name = 'Robert'; 

使用を意味するが、これを修正するために括弧します。または、ビューを更新する代わりに単純なテーブル更新ステートメントを使用します。とにかくこれはもっと読みやすくなります。

update comp575_books 
set publisher_id = 1 
where author_id in 
(
    select author_id 
    from comp575_authors 
    where first_name in ('Markus', 'Robert') 
); 
関連する問題