我有3個數據表,我需要加入才能生成一個表並顯示以下字段: u.master_id,p.surname,p.forename1,c.number,u.statusSQL從3個表加入字段
下面是表的細節:
Table 1 (person p)
Field name = entity_id (number)
Field name = surname(text)
Field name = forename1(text)
Field name = auditflag
Table 2 (users u)
Field name = master_id (number)
Field name = email (number)
Field name = status (text)
Field name = auditflag
Table 3 (contact c)
Field name = master_id (number)
Field name = entity_id (number)
Field name = number (text = holds the actual email address)
Field name = auditflag
從表2中的master_id場和3個鏈接到該人ENTITY_ID(master_id = p.entity_id)
電子郵件字段從表2鏈接到表3中的entity_id(u.email = c.entity_id)獲得號碼
的auditflag用於標記每個作爲有效記錄,即(p.auditflag = 1 AND u.auditflag = 1 AND c.auditflag = 1)
我使用Excel 2010中VBA - 連結到PostGreSQL數據庫來獲取數據。 下面是我用來加入兩個表的工作正常,但我的問題是,「電子郵件」只顯示一個數字,因爲實際地址是在第三個表(聯繫人)下名爲「號碼」的字段。
我不知道如何包含第三個表來顯示我的查詢中的字段c.number。
Const sqlconnection = "Provider=oledb;"
Dim conn As New Connection
conn.ConnectionString = sqlconnection
conn.Open
Dim rs As Recordset
Dim prs As String
prs = "SELECT u.master_id, p.surname, p.forename1, u.email, u.status " _
& "FROM users u INNER JOIN person p ON u.master_id=p.entity_id " _
& "WHERE u.auditflag=1 AND p.auditflag=1 " _
& "ORDER BY u.master_id "
Set rs = conn.Execute(prs)
With ActiveSheet.QueryTables.Add(Connection:=rs, Destination:=Range("A1"))
.Refresh
End With
謝謝。這真的幫助我理解如何更好地配合。 – BradleyS