关于sql:获取单元格值并在INSERT语句(MS ACCESS)中使用它

Get cell value and use it in an INSERT statement (MS ACCESS)

我想使用来自不同表的值插入一条记录

仅作说明:

1
2
INSERT INTO tbl1
VALUES([value1], [value2], NOW())
  • value1是一个数字,来自另一个表中随机行中的单元格
  • value2是来自另一个表中随机行中的单元格的另一个数字

这是我要尝试的方法:

1
2
INSERT INTO transactions(itemid, userid, tdate)
VALUES((SELECT TOP 1 ID FROM items ORDER BY RND(ID)), (SELECT TOP 1 ID FROM users ORDER BY RND(ID)), (NOW()))

但这会引发错误:

Query input must contain at least one table or query

任何帮助将不胜感激。

谢谢!


您可以重写语句以使用SELECT代替VALUES

1
2
3
4
5
INSERT INTO  transactions(itemid, userid, tdate)
    SELECT   TOP 1 items.ID, users.ID, NOW()
    FROM     items, users
    ORDER BY Rnd(-(1000*items.ID*users.ID)*TIME()),
             items.ID, users.ID

编辑:我添加了ORDER BY子句,这将导致更多的随机排序顺序。负值将确保某种随机性。另请参见此问题。

Edit2:扩展了ORDER BY子句,以确保TOP 1不必处理领带。