对不同的表使用两个 WHERE 语句


Using two WHERE statements for different tables

>我建立了一个关注系统,但该系统显示所有甚至暂时停用的成员,为了禁止已停用的成员显示在关注者或关注等领域,我在成员表中添加了一列"关闭",该列最初设置为no,当成员想要暂时停用他的个人资料时,此否将更新为是。现在我的想法是加入 select 语句,该语句从表中选择跟随或跟随的成员follow其中的成员列closed设置为members表中no,因此我的系统仅显示激活的成员。

我的选择语句是:

SELECT * FROM follow WHERE uid=:memberid

我试过了,但为此出现语法错误:

SELECT * FROM follow INNER JOIN members on members.memberid=follow.uid WHERE uid=:memberidid WHERE closed=no

您可以使用 AND 表示"第二个"WHERE -子句,而不是使用两次WHERE

SELECT * FROM `follow` INNER JOIN `members` ON `members`.`memberid` = `follow`.`uid` WHERE `uid` = :memberidid AND `closed` = "no"
SELECT * FROM 
follow INNER JOIN members 
on members.memberid=follow.uid 
WHERE follow.uid=follow.memberid 
AND members.closed='no'