我想使用不同表格中的值插入记录
只是为了说明:
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()))
但这会引发错误:
查询输入必须至少包含一个表或查询
非常感谢任何帮助。
谢谢!
答案 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
不必处理关系。