针对另一个表的随机 MySQL 查询验证
Posted
技术标签:
【中文标题】针对另一个表的随机 MySQL 查询验证【英文标题】:Randomised MySQL Query Validation against another table 【发布时间】:2020-11-17 23:49:57 【问题描述】:我有 3 张桌子:
-
“用户”列表 (uID)
“问题”列表 (qID)
“questionsanswered”表存储哪些问题已发送给哪些用户(qaUID 和 qaQID)
我需要做一个随机查询,我选择一个随机问题和一个随机用户,但不允许选择以前提出的问题,因此它需要根据 questionsanswered 表进行验证。
你能帮忙吗?
【问题讨论】:
【参考方案1】:您可以cross join
users
和questions
表,并使用not exists
过滤掉questionsanswered
中存在的元组。那么剩下要做的就是随机选择一行。
select u.uid, q.qid
from users u
cross join questions q
where not exists (
select 1
from questionsanswered qa
where qa.qauid = u.uid and quqid = q.quid
)
order by rand()
limit 1
【讨论】:
以上是关于针对另一个表的随机 MySQL 查询验证的主要内容,如果未能解决你的问题,请参考以下文章
mysql主表查询的where 条件怎么写查询另一个表的数据?
如果表不存在,如何运行包含针对另一个 sql 实例上的表的查询的 If-Then-Else 语句?