查询SQL限制

闲逛

桌子

选手们

id | name    | rank id
1  | player1 | 3
2  | player2 | 0
3  | player3 | 0
4  | player4 | 1
5  | player5 | 0
6  | player6 | 0

公会

id | name
1  | test1
2  | test2

公会排名

id | guild_id
1  |  1 <- which is test
2  |  2 <- which is test2

询问

$player = query -> name
$player_id = $SQL->query('SELECT rank_id from players where name = "'.htmlspecialchars($player['name']).'"')->fetch();
$player_id = $player_id['rank_id'];
$has_guild = $SQL->query('SELECT guild_id from guild_ranks where id = '. $player_id .'')->fetch();
$has_guild = $has_guild['guild_id'];
if($has_guild == 0){
    $guild_d_player = "No Guild";
}else{
    $guild_do_player = $SQL->query('SELECT name from guilds where id = '.$has_guild.' > 0')->fetch();
    $guild_do_player = $guild_do_player ['name'];
    $guild_d_player = "";
}

这是发生这种情况:

这是关于公会的。

例子:

Name    |   Guild Name   | This player truly is in a guild?

Player1 |      Test      | Yes

Player2 |  TestNo Guild  | <- Here is the problem, this player doesn't have guild but seems like if he was on one.

Player3 |  TestNo Guild  | No

Player4 |      Test2     | Yes

Player5 |  Test2No Guild | No

Player6 |  Test2No Guild | No

Etc...

它重复行会名称,直到查询获得确实存在的新行会名称。

完整查询:http : //pastebin.com/03TYv9V9

阴影

您应该将单个查询与连接3个表的左联接一起使用:

SELECT g.name from players p
left join guild_ranks gr on p.rank_id=gr.id
left join guilds g on g.id=gr.guild_id
where name=...

如果返回的值为空(null),则玩家没有公会。

进一步说明:

  1. 您不应该按播放器查询此信息。您应该将此查询与您的主要查询结合在pastebin中代码的顶部。只需将此处使用的逗号语法更改为显式联接即可。

  2. 您提供的样本数据与预期结果不一致。Player1具有3作为rank_id,但是guild_rank表中没有id = 3的记录,但是根据预期结果,该玩家处于test1公会中。

  3. 我不了解guild_rank表的使用以及为什么将您的玩家链接到该表而不是将guild_id存储在玩家表中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL查询2限制

来自分类Dev

SQL查询-限制结果

来自分类Dev

SQL查询有限制

来自分类Dev

限制为0的SQL查询

来自分类Dev

SQL查询有限制

来自分类Dev

SQL Server 递归查询的限制

来自分类Dev

限制SQL查询中每个ID的行数

来自分类Dev

限制从SQL查询返回无值

来自分类Dev

SQL查询以限制组中的行

来自分类Dev

将SQL查询限制为几个结果

来自分类Dev

Cosmos DB SQL API最大查询限制

来自分类Dev

SQL Access —仅限制子查询

来自分类Dev

如何按组限制SQL查询的结果

来自分类Dev

实体框架-SQL查询-限制和排序依据-SQL Server

来自分类Dev

限制SQL Server中用户查询的大小和/或频率

来自分类Dev

SQL查询-如何限制我感兴趣的行

来自分类Dev

如何限制SQL查询特定部分的结果数量?

来自分类Dev

SQL表达式中的SELECT查询的限制类型

来自分类Dev

SQL查询-如何删除结果的字符数限制

来自分类Dev

带有限制的oracle sql条件查询

来自分类Dev

SQL Server选择查询合并所有并限制

来自分类Dev

SQL在具有限制的选择查询后删除行

来自分类Dev

将 sql 查询限制为仅 col 聚合 = 0 的行

来自分类Dev

考虑重复项时使用限制的 SQL 查询

来自分类Dev

如何将sql限制查询转换为linq lambda?

来自分类Dev

对表中的所有记录进行 sql 限制查询

来自分类Dev

mysql子查询限制也限制了父查询

来自分类Dev

ZF2如何避免SQL查询限制在子查询中添加引号

来自分类Dev

领域限制查询结果