现在我刚刚开始加入,所以我可能缺少对它的一些核心理解,但这就是我想做的:
我有一个带有个人资料的表格,以及几个带有 profile_id 的表格(角色、技能、头衔等)、一些不相关的数据和 value_id(一对一的关系)
用户将输入一个包含不同 value_id 的数组,我想检索所有配置文件的 id,这些配置文件的对应表的 value_id 与我们从用户那里检索到的值匹配。
输入中的某些值被指定为仅匹配某个表(在本例中为角色和行业),并且该部分现在正在工作。但是我不能做的是检查任何相关表中是否有匹配项。
我不知道如何设置这个 sql 块的样式。对不起。编辑:它自己设计的。整洁的。
在这个例子中,我有三个值。一个 (88) 指定用于搜索某个角色,一个用于行业 (128),第三个 (73) 必须匹配一组表中的至少一行。
SELECT DISTINCT(profiles.id) as id,
FROM profiles
INNER JOIN profile_experience_roles r ON(r.profile_id = profiles.id)
INNER JOIN profile_experience_industries i ON(i.profile_id = profiles.id)
INNER JOIN profile_experience_technology t ON(t.profile_id = profiles.id)
INNER JOIN profile_wanted_roles w ON(w.profile_id = profiles.id)
INNER JOIN profile_languages l ON(l.profile_id = profiles.id)
WHERE r.value_id = 88 AND i.value_id = 128 AND
(r.value_id = 73 OR i.value_id = 73 OR t.value_id = 73 OR w.value_id = 73 OR l.value_id = 73)
最后一行是导致问题的原因。任何帮助表示赞赏。
另外,我以前从来没有在这里发过帖子,所以我不知道我在做什么。
谢谢