5

そのAccess データベース..

Autnm Topic Size Cover Lang外部キーであるLibraryテーブルがあります。

各レコードは、実際には、著者やスタッフなどのプロパティを持つ本です。私は正しいJOINを使用しているかどうかさえよくわかりません..「複雑な」SQLではまったく新しいです:)

SELECT Library.Bknm_Hebrew, Library.Bknm_English, Library.Bknm_Russian, Library.Note,
       Library.ISBN, Library.Pages, Library.PUSD, Author.ID AS [AuthorID],
       Author.Author_hebrew AS [AuthorHebrew],
       Author.Author_English AS [AuthorEnglish],
       Author.Author_Russian AS [AuthorRussian], Topic.ID AS [TopicID],
       Topic.Topic_Hebrew AS [TopicHebrew], Topic.Topic_English AS [TopicEnglish],
       Topic.Topic_Russian AS [TopicRussian], Size.Size AS [Size],
       Cover.ID AS [CoverID], Cover.Cvrtyp_Hebrew AS [CoverHebrew],
       Cover.Cvrtyp_English AS [CoverEnglish], Cover.Cvrtyp_Russian AS [CoverRussian],
       Lang.ID AS [LangID], Lang.Lang_Hebrew AS [LangHebrew],
       Lang.Lang_English AS [LangEnglish],

FROM Library INNER JOIN Author ON Library.Autnm = Author.ID
                 INNER JOIN Topic ON Library.Topic = Topic.ID
                 INNER JOIN Size ON Library.Size = Size.ID
                 INNER JOIN Cover ON Library.Cover = Cover.ID
                 INNER JOIN Lang ON Library.Lang = Lang.ID
WHERE (TopicID=13 AND LangID=1) ORDER BY LangID ASC 

編集: @Guffaが提案した括弧を挿入した後、新しいエラーが発生しました:

Too few parameters. Expected 3.

4

2 に答える 2

15

Accessでは、複数の結合がある場合は括弧が必要です。また、Ivarが指摘したように、フィールドリストの最後の項目の後に余分なコンマがあります。

select
  Library.Bknm_Hebrew, Library.Bknm_English, Library.Bknm_Russian, Library.Note,
  Library.ISBN, Library.Pages, Library.PUSD, Author.ID as [AuthorID],
  Author.Author_hebrew as [AuthorHebrew], Author.Author_English as [AuthorEnglish],
  Author.Author_Russian as [AuthorRussian], Topic.ID as [TopicID],
  Topic.Topic_Hebrew as [TopicHebrew],  Topic.Topic_English as [TopicEnglish],
  Topic.Topic_Russian as [TopicRussian], Size.Size as [Size], Cover.ID as [CoverID],
  Cover.Cvrtyp_Hebrew as [CoverHebrew], Cover.Cvrtyp_English as [CoverEnglish],
  Cover.Cvrtyp_Russian as [CoverRussian], Lang.ID as [LangID],
  Lang.Lang_Hebrew as [LangHebrew], Lang.Lang_English as [LangEnglish]  
from
  (((((Library
  inner join Author on Library.Autnm = Author.ID)
  inner join Topic on Library.Topic = Topic.ID)
  inner join Size on Library.Size  = Size.ID)
  inner join Cover on Library.Cover = Cover.ID)
  inner join Lang on Library.Lang  = Lang.ID)

編集:

エラーメッセージ「パラメータが少なすぎます。」クエリで、実行時に送信されないパラメータを定義したことを意味します。クエリでパラメータを使用していないということは、クエリでいくつかの名前のスペルが間違っていることを意味します。そのため、それらは代わりにパラメータであると見なされます。

于 2010-06-13T08:57:07.937 に答える
2

私は Access にあまり詳しくないので、Access がこれを受け入れるかどうかはわかりませんが、選択リストから最後のコンマを削除することから始めます。

Lang.Lang_English AS [LangEnglish], => Lang.Lang_English AS [LangEnglish]
于 2010-06-13T08:42:46.830 に答える