2014年11月30日日曜日

[SQL] MSAccessで「JOIN 式はサポートされていません」エラー

Microsoft Access における JOIN 式(特に外部結合)で、結合条件に加えて抽出条件を使用するSQL

[顧客] LEFT OUTER JOIN [購入明細] ON
  [顧客].ID = [購入明細].ID AND
  [購入明細].種別 = '食品'


Oracle などではこれで可能だが、
MSAccess では「JOIN 式はサポートされていません」エラーが発生して、LEFT OUTER JOIN 句に結合条件以外の条件を記述できない。もちろん外部結合の条件を WHERE 句には書けない。

ただし MSAccess にも迂回策があり、結合条件を合わせてカッコでまとめると通せる。

[顧客] LEFT OUTER JOIN [購入明細] ON
  ([顧客].ID = [購入明細].ID AND
   [購入明細].種別 = '食品')