好的,假设我有一个论坛,它有两个表,一个称为帖子,另一个是用户。当有人访问该站点时,会调用来自表格帖子的所有帖子。如果我有一个用户暂时被禁止并且我想隐藏他们的所有帖子(或者在这种情况下有多个用户),我怎样才能调用论坛帖子而不显示他们的帖子?我的users表中已经有一个名为active的列。Active 只是 1 或 0 表示禁止与否。
谢谢
您的问题非常模糊,但假设以下表结构:
table users
id username password active
table posts
id userid title text date
我将使用以下 SQL 语句。
SELECT p.id, p.title, p.text, p.date FROM posts AS p INNER JOIN users AS u ON u.id = p.userid AND u.active = 1;
现在我不是 SQL 人,这里可能有错误.. 对不起,我不会设置这一切来测试。如果您无法从我的示例中弄清楚,请随时发表评论,我们可以进一步调查。可以在此处阅读有关 mysql JOIN 语法的更多信息
编辑:正如向我指出的那样,INNER JOIN 是正确的 JOIN 使用。
在表中创建另一个字段作为标志。说 1 表示显示,0 表示不显示。设置它,以便当您禁止某人时,它会遍历帖子表并找到他们的所有帖子并将标志设置为 0。当显示帖子时,请使用 select * from table where show field =1 in your mysql_query,假设您使用 mysql。