gpt4 book ai didi

Mysql 两表一致性检查

转载 作者:行者123 更新时间:2023-11-29 01:02:38 25 4
gpt4 key购买 nike

我有四个 MYSQL 5.0 表:userdb、filterdb、filterlinkdb、mandatoryfilterdb。

所有表格都很简单。 * = 优先级

userdb:
id*
name

filterdb:
id*
name

filterlinkdb:
user_id*
filter_id*

mandatoryfilterdb
filter_id*

我如何检查 filterlinkdb 以确保所有 mandatoryfilterdb 记录都存在于每个 user_id 使用单个(有或没有 subs)查询?

编辑::我忘了说,我想从 mandatorydb 返回 filter_id 值,这些值在 filterlinkdb 中不存在于所有 user_id,例如:用户 #1 只有过滤器 1,但 1 和 2 在 mandatordb 中,所以它会返回用户 1,过滤器 2(因为它丢失了)。

最佳答案

这应该有效:

select userdb.id,mandatoryfilterdb.filter_id
from userdb
join mandatryfilterdb
on 1
left join filterlinkdb
on userdb.id=filterlinkdb.user_id
and mandatryfilterdb.filter_id=filterlinkdb.filter_id
where filterlinkdb.user_id is null

它选择 users 和 mandatory-filters 之间的所有笛卡尔倍数,并根据真实的 filterlinkdb 表检查它们。如果它们不存在(filterlinkdb.user_id 为 null,您可以检查 filter_id,它是相同的)- 而不是在查询结果中提供它们。

如果没有记录返回 - 你是一致的。

关于Mysql 两表一致性检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2015631/

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