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

时间:2016-03-12 15:05:01

标签: sql ms-access

我想使用不同表格中的值插入记录

只是为了说明:

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

以下是我尝试做的事情:

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()))

但这会引发错误:

  

查询输入必须至少包含一个表或查询

非常感谢任何帮助。

谢谢!

1 个答案:

答案 0 :(得分:3)

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

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子句,这将导致更多随机排序顺序。负值将确保一种随机化。另请参阅this question

Edit2:扩展ORDER BY子句,以确保TOP 1不必处理关系。