- ベストアンサー
アクセスではうまく行くのに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ではうまく行きません。どうか御指導をお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
普通に SELECT * FROM area INNER JOIN pref ON area.area_id = pref.area_id INNER JOIN city ON pref.pref_id = city.pref_id ではまずいんですか?
その他の回答 (1)
- chukenkenkou
- ベストアンサー率43% (833/1926)
MySQLのバージョンは、何ですか? MySQL 4.0の前後で、joinの構文のサポートがいくつか行なわれています。 select文の選択リスト中にある「pref.ken_name」は、「pref.pref_name」の誤りですね? 上記を修正し、MySQL 5.0では、文法エラーは発生しませんでした。
お礼
chukenkenkou様、ありがとうございます。 初歩的なミス、ご指摘ありがとうございます。 4.0のようですが、前述のご回答でうまく行きました。 ありがとうございました。
お礼
yambejp様。ありがとうございます。 早々に御指導頂き、うまく行きました。 なかなかSQL文を自分で考えるのは難しいので ついついアクセスの便利な機能を活用して手抜きを していますので、エラーが出るとお手上げになっております。 大変助かりました。