【问题标题】:select first record into field1 and other records into field2选择第一条记录到 field1 和其他记录到 field2
【发布时间】:2016-01-27 16:47:07
【问题描述】:

我有一个带有 id 的 table1。另一个 table2 有两个字段;

我需要从table1中选择first Id作为table2中的ma​​ster,而 table2 中的其他 idchild

我试过这个:

Dim rs as recordset
Dim strSql as String  

strSql = "Select top 1 Id FROM table1"           
Set rs = CurrentDb.OpenRecordset(strSql)
rs.MoveFirst
strSql = "INSERT INTO table2 (child) SELECT table1.Id FROM table1 WHERE Id <> " & rs.Fields(0).Value
DoCmd.RunSQL strSql
strSql = "UPDATE table2 SET master = " & rs.Fields(0).Value & " WHERE master is null"
DoCmd.RunSQL strSql 
rs.Close
Set rs = Nothing

但是由于我必须在代码中多次对不同的表执行相同的操作,因此如果可能的话,我宁愿使用一个查询来执行此操作。如果可能,也可以不使用子查询。

【问题讨论】:

  • 你将如何在table1中定义first Id
  • @VR46,最低 id。或第一个。
  • 这个问题没有显示任何研究工作。
  • 使用 VBA。 DMin() 查找最小值。 id,然后是带有 id + 所有其他行的 INSERT。

标签: sql ms-access


【解决方案1】:

假设你的 ID 是一个数字列,你可以使用类似的东西

SELECT Table2.id, Table2.child
FROM (SELECT MIN(id) AS master FROM Table1) AS Table1 
INNER JOIN Table2
     ON Table1.master = Table2.id

我看不出没有子查询的方法。

【讨论】:

  • 在 MSACCESS 中,您可以使用 min(id) 创建一个表,并可以将其与 Table2 连接,如上所示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-01
相关资源
最近更新 更多