gpt4 book ai didi

mysql - 如何通过 MYSQL 上的数据透视表从 table1 中选择随机行

转载 作者:行者123 更新时间:2023-11-30 22:19:06 26 4
gpt4 key购买 nike

我在数据库中有三个表:一个是用户,第二个是问题,另一个是名为 users_questions 的数据透视表。关键是不应再向该用户询问先前向用户提出的问题。所以我要在数据透视表中插入一行,其中包含 question_id 和 user_id。我如何编写一个 SQL 语句来从表问题中获取这样一个随机行,该行的 id 与表 users_questions 中的 question_id 不匹配,并且表 users_questions 中该行的 user_id 与当前签名不匹配-在用户的 ID 中?

我已经尝试过 LEFT JOIN,但它会将之前插入的问题提取到当前登录用户的表 users_questions 中。我试过的陈述如下:

SELECT * FROM questions LEFT JOIN users_questions ON questions.id != users_questions.question_id AND users_questions.user_id != 'some_id' ORDER BY RAND() LIMIT 1;

SELECT * FROM questions, users_questions WHERE questions.id != users_questions.question_id AND users_questions.user_id != 'some_id' ORDER BY RAND() LIMIT 1;

谢谢。

最佳答案

您可以对 user_question 的问题进行 LEFT JOIN 并查找空值

SELECT * FROM questions
LEFT JOIN users_questions ON questions.id = users_questions.question_id AND
users_questions.user_id = 'some_id'
WHERE user_questions.questions_id IS NULL
ORDER BY RAND() LIMIT 1

在放入 ORDER BY RAND() 和 LIMIT 之前检查是否给出了正确的列表。

关于mysql - 如何通过 MYSQL 上的数据透视表从 table1 中选择随机行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37233145/

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