我的问题与How can SQL create duplicate records?中的问题相同。但是,我正在尝试在Access中执行此操作,并且这些解决方案似乎都不适用。最好,我想要一个SQL语句。
感谢。
答案 0 :(得分:2)
该链接问题的已接受答案可以适用于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
。访问&#39; db引擎不会单独接受JOIN
;您必须指定连接类型(内部,左侧或右侧)。
答案 1 :(得分:0)
插入TableName(字段1,字段2,...) 选择* From TableName;
如果你有主键会给出错误。