我需要帮助创建一个明确的内部连接,用于我的课程作业

I need help creating an explicit inner join, for my coursework

我有一个 Microsoft Access 2010 数据库,其中包括预订和客户 table。主要 table 是预订 table。客户 table 通过其客户 ID 链接到预订 table,客户 ID 是预订 table 中的外键。我想检索链接到特定预订的客户的电子邮件地址。但是,语法错误消息不断出现,我无法分辨 SQL.

中的错误位置

这是我的计算机科学课程作业。我需要做一个酒店房间预订系统。我正在尝试向客户发送自动提醒电子邮件,时间是他们到达预订前一周。我在 VB.Net 2010 express 中对其进行编程,并为其设置了 Microsoft Access 2010 数据库。

这是我的代码:

Imports System.Data.OleDb

Dim CN As OleDbConnection
Dim DR As OleDbDataReader
Dim SQL As String

Sub OpenDatabase()
    CN = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Coursework Prototype Database.mdb;")
    CN.Open()
End Sub

Public Sub ExecuteSQL()
    Dim CM As New OleDbCommand(SQL, CN)
    DR = CM.ExecuteReader
End Sub

Sub RetrieveCustomerEmail()
    OpenDatabase()
    SQL = ("SELECT tblCustomer.Email_Address FROM tblBookings JOIN tblCustomer ON tblBookings.CustomerID = tblCustomer.CustomerID Where tblBookings.BookingID = 1")
    ExecuteSQL()
    DR.Read()

    Dim CustomerEmail As String = DR.Item("Email_Address").ToString
    CN.Close()
End Sub

我希望结果是一个电子邮件地址,但我只是收到一条语法错误消息

Syntax error in FROM clause.

MS Access 要求将内部联接显式声明为 INNER JOIN,并且不会将 JOIN shorthand 解释为其他 RDBMS 接受的内部联接。

因此,您的 SQL 声明需要是:

SELECT tblCustomer.Email_Address 
FROM tblBookings INNER JOIN tblCustomer ON tblBookings.CustomerID = tblCustomer.CustomerID
WHERE tblBookings.BookingID = 1