【发布时间】:2012-08-31 09:08:48
【问题描述】:
现在我刚开始接触联接,所以我可能缺少对它的一些核心理解,但这是我想做的:
我有一个包含个人资料的表格,以及几个带有 profile_id、一些不相关数据和 value_id(一对一关系)的表格(角色、技能、头衔等)
用户将输入一个包含不同 value_id 的数组,我想检索所有配置文件的 id,这些配置文件的对应表的 value_id 与我们从用户那里检索到的相匹配。
输入中的某些值被指定为仅匹配某个表(在本例中为角色和行业),并且该部分现在正在工作。但是我不能做的是检查 any 的相关表中是否有匹配项。
我不知道如何设置这个 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)
最后一行是导致问题的原因。任何帮助表示赞赏。
另外,我以前从未在这里发过帖子,所以我不知道我在做什么。
谢谢
【问题讨论】:
-
那是出色的符号
Edit: It styled itself. Neat.!你让我度过了一个晚上! :)