table 和要存储在连接 sql 查询的数据集中的列名称

table and column name to store in dataset from joined sql query

我有 3 个 tables,在我无法修改的访问数据库中,要像这样使用左连接进行查询

SELECT
  tbl_A.mID,
  tbl_A.data,
  tbl_B.data,
  tbl_C.data
FROM ((tbl_A
  LEFT JOIN tbl_B ON tbl_A.mID = tbl_B.mID)
  LEFT JOIN tbl_C ON tbl_A.mID = tbl_C.mID)
ORDER BY tbl_A.mID

现在我想存储列名称,包括 table 左侧连接中相应 table 的名称

   Dim i as integer = 0
    For Each column As DataColumn In ds.Tables(0).Columns
      Dim lst As New ListBox
      lst.name = "lst_" & i
      lst.add(new ColumnAndListBox(ds.Tables(0).TableName & "." & column.ColumnName, lst.name)
      i += 1
    next

该列表中的结果应如下所示

tbl_A.mID  lst
tbl_A.data lst
tbl_B.data lst
tbl_C.data lst

我需要完整的名称(table 和列)才能动态创建 where 子句并查询例如 mID,因为这样的查询不起作用

SELECT
      tbl_A.mID,
      tbl_A.data,
      tbl_B.data,
      tbl_C.data
    FROM ((tbl_A
      LEFT JOIN tbl_B ON tbl_A.mID = tbl_B.mID)
      LEFT JOIN tbl_C ON tbl_A.mID = tbl_C.mID)
    WHERE mID = 1
    ORDER BY tbl_A.mID
SELECT
  tbl_A.mID,
  tbl_A.data,
  tbl_B.data,
  tbl_C.data
FROM ((tbl_A
  LEFT JOIN tbl_B ON tbl_A.mID = tbl_B.mID)
  LEFT JOIN tbl_C ON tbl_A.mID = tbl_C.mID)
WHERE mID = 1
ORDER BY tbl_A.mID

行不通,但我认为这会:

SELECT * from
  (
   SELECT
      tbl_A.mID,
      tbl_A.data adata,
      tbl_B.data bdata,
      tbl_C.data cdata
   FROM ((tbl_A
      LEFT JOIN tbl_B ON tbl_A.mID = tbl_B.mID)
      LEFT JOIN tbl_C ON tbl_A.mID = tbl_C.mID)
   ORDER BY tbl_A.mID
   )     WHERE mID = 1