• ベストアンサー

アクセスではうまく行くのにMYSQLではうまくいきません。

いつもありがとうございます。初心者です。どうか教えて下さい。 テーブル area フィールド area_id, area_name テーブル pref フィールド pref_id, pref_name, area_id テーブル city フィールド city_id, city_name, pref_id というように3つのテーブルがあり、それぞれarea_id,pref_id,city_id を主キーにして 結合して表示したいのですが、エラーになります。 SQL文は次のように書きました。 SELECT area.area_id, area.area_name, pref.pref_id, pref.ken_name, city.city_id, city.pref_id FROM area INNER JOIN (pref INNER JOIN city ON pref.pref_id = city.pref_id) ON area.area_id = pref.area_id するとエラーメッセージで #1064 - You have an error in your SQL syntax near '(pref INNER JOIN city ON pref.pref_id = city.pref_id) ON area.area_id = pref.are' at line 2 のように表示されます。 マイクロソフトのアクセスですると問題なく表示されるのですが、 MYSQLではうまく行きません。どうか御指導をお願い致します。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

普通に SELECT * FROM area INNER JOIN pref ON area.area_id = pref.area_id INNER JOIN city ON pref.pref_id = city.pref_id ではまずいんですか?

nicolemen
質問者

お礼

yambejp様。ありがとうございます。 早々に御指導頂き、うまく行きました。 なかなかSQL文を自分で考えるのは難しいので ついついアクセスの便利な機能を活用して手抜きを していますので、エラーが出るとお手上げになっております。 大変助かりました。

その他の回答 (1)

回答No.1

MySQLのバージョンは、何ですか? MySQL 4.0の前後で、joinの構文のサポートがいくつか行なわれています。 select文の選択リスト中にある「pref.ken_name」は、「pref.pref_name」の誤りですね? 上記を修正し、MySQL 5.0では、文法エラーは発生しませんでした。

nicolemen
質問者

お礼

chukenkenkou様、ありがとうございます。 初歩的なミス、ご指摘ありがとうございます。 4.0のようですが、前述のご回答でうまく行きました。 ありがとうございました。

関連するQ&A