我正在尝试在表A和表中创建具有相同字段的查询。表B.然后表B与表C具有相同的字段。我想将表A上的所有表连接起来。这可能吗?如果是的话,我的代码有多接近呢?
Try
objConn = DBAccess.GetConnection
strBlder.Append("SELECT ")
strBlder.Append("FLD_NM, DATA_TYPE_CD, XML_PATH_TX, UPDT_USER_ID_NR, DOC_TMPL_FLD_ID_NR ")
strBlder.Append("FROM ")
strBlder.Append("LLC.[LLCW10_DCTMPFLD_TB] LEFT JOIN LLC.[DataMapTool_FieldMapping] ")
strBlder.Append("ON LLC.[LLCW10_DCTMPFLD_TB].DOC_TMPL_FLD_ID_NR = LLC.[DataMapTool_FieldMapping].DocumentTemplateFieldID ")
strBlder.Append("& LEFT JOIN LLC.[DataMapTool_FieldMapping] ")
strBlder.Append("ON LLC.[DataMapTool_FieldMapping].FieldMappingStatusID = LLC.[DataMapTool_FieldMappingStatus].FieldMappingStatusID ")
strBlder.Append("ORDER BY FLD_NM ;")
dsData = DBAccess.ExecuteDataTable(objConn, CommandType.Text, strBlder.ToString())
'execute non query - takes sp name
答案 0 :(得分:0)
对我来说很好,但在&
之前有一些奇怪的LEFT JOIN LLC.[DataMapTool_FieldMapping]
......把它拿出来。
答案 1 :(得分:0)
您获得的错误(删除&
后)是因为重复了LLC.[DataMapTool_FieldMapping]
而这是一个问题。而不是你的from
条款尝试类似:
FROM (LLC.[LLCW10_DCTMPFLD_TB] LEFT JOIN LLC.[DataMapTool_FieldMapping] ON LLC.[LLCW10_DCTMPFLD_TB].DOC_TMPL_FLD_ID_NR = LLC.[DataMapTool_FieldMapping].DocumentTemplateFieldID)
LEFT JOIN LLC.[DataMapTool_FieldMappingStatus] ON LLC.[DataMapTool_FieldMappingStatus].FieldMappingStatusID = LLC.[DataMapTool_FieldMapping].FieldMappingStatusID
请注意,第一个连接中引用了LLC.[DataMapTool_FieldMapping]
,然后在第二个连接中仅引用了.FieldMappingStatusID
字段。您的初始查询将尝试将同一个表添加到查询两次,而不会给它一个混淆查询分析器的别名。
基本上,新的from
子句将前两个表连接在一起,然后将第三个表附加到第一个连接的结果上。