- ベストアンサー
Access2007で5つのテーブルを結合したい
- Access2007のSQLで質問です。「ユーザが選んだレンタカー営業所に所属する車とその借主、レンタル日、レンタル期間」を一覧で表示するクエリを制作したいです。
- LocationNameの中から指定したLocationが保有するCarのBookすべてを表示するクエリを作りたいです。
- 以下のSQLを作ってみましたが、「syntax error missing operator」が表示されてしまいます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
この場合、INNER JOINの後を()でくくる必要はないのだが。 それはさておき、 SELECT c.CarNo, c.Model, cs.FirstName, cs.LastName, b.Date, b.Duration FROM Location l INNER JOIN ( ( (Own o INNER JOIN Car c ON o..FK_CarNo = c.CarNo l.LocationNo) /* o..FK_CarNo は、 o.FK_CarNo のあやまりでしょう。 また c.CarNoの後にあるl.LocationNoは何のためのものか分らないので文法エラーになります。 */ INNER JOIN Book b ON c.CarNo = b.FK_CarNo) INNER JOIN Customer cs ON b.FK_CustomerID = cs.CustomerID) ON l.LocationNo = o.FK_LocationNo WHERE l.LocationName =:user_input ; ANO.1の方が書いた方法で悪いとは思わないのですが、ご自身で書かれたselect文を試してみたければ /* ・・・ */内に書かれた内容を直した下のselectを試して見られたらいいでしょう。 SELECT c.CarNo, c.Model, cs.FirstName, cs.LastName, b.Date, b.Duration FROM Location l INNER JOIN ( ( (Own o INNER JOIN Car c ON o.FK_CarNo = c.CarNo) INNER JOIN Book b ON c.CarNo = b.FK_CarNo) INNER JOIN Customer cs ON b.FK_CustomerID = cs.CustomerID) ON l.LocationNo = o.FK_LocationNo WHERE l.LocationName =:user_input ;
その他の回答 (1)
- osamuy
- ベストアンサー率42% (1231/2878)
お礼
ありがとうございます。 参考になりました。