试图弄清楚如何找出哪些用户记录至少启用了 1 个类似选项,然后显示这些。
表:
user (id, username)
thing (id,title)
uthing (id, uid, tid)
Uthing表记录了每个用户选择了哪些选项。
uid = user.id
tid = thing.id
我需要将uthing
用户 ID 1 的选项 ( ) 与所有其他用户进行比较。
如何找到具有uthing
USER ID 1 的 1 个或多个 options( ) 的用户,并使用找到的选项返回这些用户?
此查询将为我提供用户 ID 1 的所有选项。
select thing.title,thing.id as thingid
from thing join uthing on uthing.tid = thing.id where uthing.uid = 1;
您可以通过以下查询实现此目的
按照您的架构,我生成了下一个示例:
此查询选择
id <> 1
与 user 具有(存在)至少一个共同点的用户id = 1
。dbfiddle here