[英]Mysql: Joining 3 tables with more than one 'where'?
我试图在一个条件下将一个表连接到另一个表,然后在另一个条件下将表连接到另一个表。 您可以这样做,如果可以的话,正确的语法是什么? 我一直在尝试,但是不起作用:
$check = $members->prepare("select users.fname, users.lname, groups.groupid, attributes.max
from users
JOIN groups
on users.user_id = groups.userid
where groups.userid = ?
LEFT JOIN attributes
on users.user_id = attributes.userid
where attributes.groupid = ?");
$check->bind_param('ss', $_SESSION['token'][1], $which_group);
$check->execute();
干杯。
对attributes.groupid
的测试必须是LEFT JOIN上联接条件的一部分。 尝试在WHERE子句中测试此条件将迫使LEFT JOIN表现得像是INNER JOIN。
select users.fname, users.lname, groups.groupid, attributes.max
from users
JOIN groups
on users.user_id = groups.userid
LEFT JOIN attributes
on users.user_id = attributes.userid
and attributes.groupid = ?
where groups.userid = ?
只需使用....... AND
$check = $members->prepare("select users.fname, users.lname, groups.groupid, attributes.max
FROM users
JOIN groups
ON users.user_id = groups.userid
AND groups.userid = ?
LEFT JOIN attributes
ON users.user_id = attributes.userid
AND attributes.groupid = ?
如果您要引用的条件是文字,并且与联接表没有任何关系,则将它们组合在一个where子句中。
select users.fname, users.lname, groups.groupid, attributes.max
from users
JOIN groups
on users.user_id = groups.userid
LEFT JOIN attributes
on users.user_id = attributes.userid
where groups.userid = ? and attributes.groupid = ?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.