gpt4 book ai didi

mysql - 随机插入第二张表

转载 作者:行者123 更新时间:2023-11-30 23:14:10 27 4
gpt4 key购买 nike

我想从 MySql 表中提取 10 条随机记录(问题)并将它们插入到另一个表中(事件),但只插入不在第二个表中的记录(事件)。如果第二个表不为空,我的代码可以工作,但如果表为空,则根本不会给出任何结果。任何人都可以看到为什么以及我可以做什么吗?

INSERT INTO active (quesindex)
(
SELECT DISTINCT(questions.quesindex)
FROM questions, (
SELECT questions.quesindex AS sid
FROM questions, active
where questions.quesindex NOT IN (SELECT active.quesindex FROM active )
ORDER BY RAND( )
LIMIT 10
) tmp
WHERE questions.quesindex = tmp.sid
)

最佳答案

您正在 questionsactive 表之间进行不必要的交叉连接。这个查询应该做你想做的:

INSERT INTO active (quesindex)
SELECT q.quesindex AS sid
FROM questions q
where q.quesindex NOT IN (SELECT a.quesindex FROM active a)
ORDER BY RAND( )
LIMIT 10;

这是一个替代版本,使用 left outer join:

INSERT INTO active (quesindex)
SELECT q.quesindex AS sid
FROM questions q left outer join
active a
on q.quesindex = a.quesindex
WHERE a.quesindex is null
ORDER BY RAND( )
LIMIT 10;

后一个版本可以工作,例如,当 acive.quesindex 中有 NULL 值时。

关于mysql - 随机插入第二张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18642959/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com