使用 MySQL 在 PHP 中选择具有非禁止帐户的字符


Selecting characters with non-banned account in PHP using MySQL

我有 2 个表:

帐户 [ID、姓名] 和字符 [ID、帐户 ID、名称]

实际上,我正在使用此查询选择所有字符:

SELECT * FROM characters

如何从帐户中检查该字符的帐户ID是否被禁止或未使用相同的查询?我正在尝试使用 JOIN 查询(这看起来是最好的方法),但无法让它们工作。这是我尝试过的:

SELECT * FROM characters WHERE accounts.banned = 0 INNER JOIN accounts
ON accounts.id = characters.accountid;

这不显示任何结果。我做错了什么?

您的查询是错误的。您正在使用where 之前join .试试这个:

SELECT * FROM characters INNER JOIN accounts
ON accounts.id = characters.accountid WHERE accounts.banned = 0;

有关连接 : http://dev.mysql.com/doc/refman/5.7/en/join.html 的信息,请参阅本手册

JOIN应该在WHERE子句之前。

SELECT * FROM characters 
INNER JOIN accounts ON accounts.id = characters.accountid 
WHERE accounts.banned = 0;

加入

你可以试试:

SELECT c.* FROM characters c,accounts a WHERE a.banned = 0 and a.id = c.accountid