2012-07-24 46 views
0

我試圖做一個查詢,它具有相同的字段在表A &表B.然後表B有與表C相同的字段我想要向左連接表A上的所有表。這可能嗎?如果是的話,我的代碼有多接近呢?SQL加入查詢VB(漂亮的Sumple,我只是在學習)

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 
+1

刪除第8行的開頭。當您運行查詢時會發生什麼? – mellodev 2012-07-24 18:09:27

+0

現在我刪除了&(謝謝),我得到: FROM子句中的對象「LLC.DataMapTool_FieldMapping」和「LLC.DataMapTool_FieldMapping」具有相同的公開名稱。使用相關名稱來區分它們。 – gbam 2012-07-24 18:32:00

回答

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子句會將前兩個表連接在一起,然後將第三個表連接到第一個連接的結果上。

0

我看不錯,但那個奇怪&LEFT JOIN LLC.[DataMapTool_FieldMapping]之前...取了這一點。

+0

現在我刪除了&(謝謝),我得到:FROM子句中的對象「LLC.DataMapTool_FieldMapping」和「LLC.DataMapTool_FieldMapping」具有相同的公開名稱。使用相關名稱來區分它們。 – gbam 2012-07-24 18:53:05