我对一个有点复杂的查询有点麻烦,我无法弄清楚到底出了什么问题...
查询处理两个MySQL表:
$userstable:
|| id || firstname || lastname
|| 1 || John || Doe
$membershipstable:
|| groupid || templateid || userid ||
|| 0 || 1 || 1 ||
|| 1 || 0 || 2 ||
|| 0 || 2 || 3 ||
以下是查询:
$query = "
SELECT DISTINCT
u.id,
u.firstname,
u.lastname
FROM $userstable AS u
INNER JOIN $membershipstable AS M1 ON u.id = M1.userid
INNER JOIN $membershipstable AS M2 ON M1.groupid = M2.groupid
WHERE M2.templateid = :currenttemplateid
";
作为参考,我已经仔细检查了占位符:currenttemplateid
的变量并且它正确返回...我想要做的是从查询返回当前模板的记录' s { {1}}但是,无论该模板的id
是否与{{1}中指定的当前模板相匹配,查询都会返回$userstable
中与模板关联的任何用户的用户数据}。clause。
如果我刚刚完全不知道这个,那么我道歉,但我已经使用这段代码几个小时了,所以我的感觉可能不会像它们应该那么尖锐。 。 很感谢任何形式的帮助。
答案 0 :(得分:1)
修改您的查询如下: -
$query = " SELECT DISTINCT u.id, u.firstname, u.lastname
FROM $userstable AS u
INNER JOIN $membershipstable AS M1 ON u.id = M1.userid
INNER JOIN $membershipstable AS M2 ON M1.groupid = M2.groupid and M2.templateid = :currenttemplateid ";