• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mysqlでのsql文)

MySQLでのSQL文実行時のエラーの原因と解決方法

このQ&Aのポイント
  • MySQLでSQL文を実行した際にエラーが発生し、正常に動作しない状況が発生しました。
  • エラーの原因は、追加した部分の文法ミスである可能性があります。
  • 解決方法としては、追加した部分の文法を確認し、正しい書式に修正する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.6

#1、#2、#5です。 #3さんへの回答の補足を見落としてました。 原因は From にあります。 > left JOIN kashu ON song.kashu_1_ID = kashu.kashu_ID) > left JOIN kashu_yomi ON song.kashu_1_ID = kashu.kashu_ID) ←追加 > left JOIN kashu_yomi ky2 ON song.kashu_2_ID = ky2.kashu_ID) ←追加 <結合の方法> JOIN <テーブル名> ON <結合列の条件> であるべきが <結合の方法> JOIN <列名> ON <結合列の条件> になってる。 これ、kashu_yomi は1行目の left JOIN kashu ON song.kashu_1_ID = kashu.kashu_ID) で拾えるので2行目は不要。 3行目はテーブル名を記述するのが正しいので left JOIN kashu ky2 ON song.kashu_2_ID = ky2.kashu_ID) ←追加 です。 ただし、selectを ti2.tie_up as tie_up2 kashu.kashu_yomi, ←追加 ky2.kashu_yomi as kashu_yomi2 ←追加 と変更することも必要。

IrohaKujoh
質問者

お礼

ありがとうございます。 無事動きました。

その他の回答 (5)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.5

#1,#2です。 書きようがあいまいだったようで申し訳ない。 > ti2.tie_up as tie_up2 > kashu_yomi, ←追加 > ky2.kashu_yomi as kashu_yomi2 ←追加 上記3行のうちの2行目 > kashu_yomi, ←追加 が問題点。 ここを「テーブル名.列名で記述しなされ」だったのです。 具体的に書くとselectの列挙を ti2.tie_up as tie_up2 kashu_yomi.kashu_yomi, ←追加 ky2.kashu_yomi as kashu_yomi2 ←追加 です。 提示されていなかったkashu_yomi のテーブル構成が kashu_yomi.kashu_yomi なんでしょ。 テーブル名と列名が等しい状態に加え、エイリアスky2まで存在するので 「selectしろ」と記述がある「kashu_yomi」はDBエンジンからすると ・kashu_yomi.kashu_yomiなのか ・ky2.kashu_yomi(=3行目と同じものをあえて2行目に書きたい可能性)なのか ・kashu_yomi.*なのか 分からないでしょ?ということ。 得てして、質問者様が「不要と判断して掲載しない部分」にこそ 問題があることが多いですよ。 #他の回答者さんにフォローいただいたとおり #「そのもの」をコピペしないと意味がない。 #追加したテーブル構成の提示が無い。 #そもそもが、エラーメッセージ内容が無い。

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.4

実際のSQL文と,その実行の際に表示されたエラーメッセージを,そのまま提示していただけますか。 > このサイトに入力する際のタイプミスです。(回答No.1への補足) タイプし直すのではなく,実際のSQLコードをそのままcopy&pasteで提示してください。

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.3

回答No.2への補足を読みました。質問者は回答者の指示を読み間違っています。 > kashu_yomi, ←追加 > ky2.kashu_yomi as kashu_yomi2 ←追加 のように登場する上の追加行は,現状のままでは,kashu_yomi表のkashu_yomi列なのか,ky2表のkashu_yomi列なのか一意に特定できないと指摘しているのです。 回答No.2への補足でおこなった変更を元に戻し,上記の追加行を kashu_yomi.kashu_yomi, のように修正してください。

IrohaKujoh
質問者

補足

ご指摘の箇所を修正しましたが、依然動きません。 kashu +----------------+-------------------+------------------+ | kashu_ID   | kashu      | kashu_yomi   | +----------------+-------------------+------------------+ | 0       | KOTOKO     | コトコ     | +----------------+-------------------+------------------+ | 1       | AKI       | アキ      | +----------------+-------------------+------------------+

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

では、selectで列挙されてる > kashu_yomi, ←追加 の元テーブルは kashu_yomi と推測できるが fromのテーブル群では > left JOIN kashu_yomi ON song.kashu_1_ID = kashu.kashu_ID) ←追加 > left JOIN kashu_yomi ky2 ON song.kashu_2_ID = ky2.kashu_ID) ←追加 の2回登場している。 他の列と同様に、テーブル名.列名と記述しなされ。

IrohaKujoh
質問者

補足

回答ありがとうございます。 下記のように、テーブル名.列名としましたがダメでした。 left JOIN kashu.kashu_yomi ON song.kashu_1_ID = kashu.kashu_ID) ←追加 left JOIN kashu.kashu_yomi ky2 ON song.kashu_2_ID = ky2.kashu_ID) ←追加

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

そりゃ動かないでしょ。 select 列挙の > ti2.tie_up as tie_up2 > kashu_yomi, ←追加 で、tie_up2 の後ろにカンマが無い。

IrohaKujoh
質問者

補足

それは、このサイトに入力する際のタイプミスです。 実際に動かしているsql文には、ちゃんとカンマが有りますが、 動きません。

関連するQ&A