我想执行一个简单的左连接。我有两个表t1和t2。两者都包含一列“ISIN”。我希望t1中的ISIN与t2中的“Issuer”列连接。代码给了我一个错误“JOIN表达式没有被推迟”。
conn.Open sconnect
strSQL = "SELECT [t1$].[ISIN], [t2$].[ISSUER] " & _
"FROM [t1$], [t2$] " & _
"LEFT JOIN [t1$] ON [t1$].[ISIN] = [t2$].[ISIN]"
mrs.Open strSQL, conn
ws4.Range(ws4.Cells(1, 1), ws4.Cells(1, 1)).CopyFromRecordset mrs
mrs.Close
conn.Close
我是SQL的初学者,无法弄明白。我认为它可能与缺少括号有关。
答案 0 :(得分:2)
请勿将FROM [t1$], [t2$]
与明确的联接一起使用。
试试这个:
strSQL = "SELECT [t1$].[ISIN], [t2$].[ISSUER] " & _
"FROM [t1$] " & _
"LEFT JOIN [t2$] ON [t1$].[ISIN] = [t2$].[ISIN]"
答案 1 :(得分:1)
您的查询错误。如下所示:
conn.Open sconnect
strSQL = "SELECT [t1$].[ISIN], [t2$].[ISSUER] " & _
"FROM [t1$] " & _
"LEFT JOIN [t2$] ON [t1$].[ISIN] = [t2$].[ISIN]"
mrs.Open strSQL, conn
ws4.Range(ws4.Cells(1, 1), ws4.Cells(1, 1)).CopyFromRecordset mrs
mrs.Close
conn.Close