我的问题与SQL 如何创建重复记录?. 但是,我正在尝试在 Access 中执行此操作,但那里的解决方案似乎都不适用。最好,我想要一个 SQL 语句。
谢谢。
我的问题与SQL 如何创建重复记录?. 但是,我正在尝试在 Access 中执行此操作,但那里的解决方案似乎都不适用。最好,我想要一个 SQL 语句。
谢谢。
该链接问题的已接受答案可适用于 Access。num
从用户界面创建表。如果要使用 DDL 语句创建表,请使用它。
Dim strDdl As String
strDdl = "CREATE TABLE num (" & vbCrLf & _
"i INTEGER PRIMARY KEY" & vbCrLf & _
");"
Debug.Print strDdl
CurrentProject.Connection.Execute strDdl
加载num
表。在 Access 中,一个 VBA 过程会很方便。
Public Sub Load_Num_table()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim x As Long
Set db = CurrentDb
Set rs = db.OpenRecordset("num", dbOpenTable, dbAppendOnly)
For x = 1 To 100
rs.AddNew
rs!i = x
rs.Update
Next x
rs.Close
Set rs = Nothing
Set db = Nothing
End Sub
准备好num
表和名为tableX的其他表后,使用此 SQL 语句返回包含重复行的行集。
SELECT t.id, t.name
FROM
tableX AS t
INNER JOIN num
ON num.i <= t.count;
该SELECT
声明与@ypercube 在接受的另一个问题的答案中建议的唯一真正区别是,INNER JOIN
而不是只是JOIN
. Access' db 引擎不会JOIN
单独接受;您必须指定连接类型(内、左或右)。
Insert Into TableName (field 1, field 2, ...) Select * From TableName;
如果你有主键会出错。