mysql - 查询以从自定义搜索中获取特定数据

标签 mysql

我正在编写一个自定义搜索框来查找星际争霸游戏,但我不知道如何进行查询。例如,用户搜索“玩家:丹尼尔,玩过:‘x’ map 上的虫族 vs 人族玩家”

所以我有这个表:

table 上游戏

+------------+----------+-------------+----------+
|  game_id   |   map    |    match    |  winner  |
+------------+----------+-------------+----------+
|     7      |     y    |     1v1     |    1     |
|     8      |     x    |    1v1v1    |    2     |
|     9      |     w    |    1v1v1    |    3     |
|     10     |     x    |     1v1     |    1     |
+------------+----------+-------------+----------+

table 上玩家

+------------+----------+-------------+----------+
|  game_id   |  player  |Civilization |  team    |
+------------+----------+-------------+----------+
|     7      |  Arturo  |   protos    |    1     |
|     7      |  Daniel  |   zerg      |    2     |
|     8      |  Ale     |   Terran    |    1     |
|     8      |  Maria   |   Protos    |    2     |
|     8      |  Daniel  |   zerg      |    3     |
|     9      |  Pablo   |   zerg      |    1     |
|     9      |  Ale     |   protos    |    2     |
|     9      |  Maria   |   protos    |    3     |
|     10     |  Daniel  |   zerg      |    1     |
|     10     |  Oscar   |   terran    |    2     |
+------------+----------+-------------+----------+

通过正确的查询,我必须得到:

Game_id: 8, 1v1v1, 丹尼尔 (虫族) vs 玛丽亚 (神族) vs 艾尔 (人族), map : x
Game_id:10, 1v1, 丹尼尔 (虫族) vs 奥斯卡 (人族), map : x

这里的问题是我如何获得游戏,其中存在丹尼尔玩家和虫族文明,并且对手在同一game_id中拥有人族文明??!而且游戏也是在x map 上玩的?

PD:正如您所注意到的,每个游戏都有不同规模的玩家。请帮忙。非常感谢

最佳答案

试试这个从游戏中选择 g.game_id, GROUP_CONCAT(CONCAT(p.player,'(', p.Civilization, ')-',g.map) SEPARATOR ' vs ') 作为 g 加入玩家 p在 p.game_id = g.game_id 上,其中 g.map = 'x' group by g.game_id;

关于mysql - 查询以从自定义搜索中获取特定数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44666037/

相关文章:

mysql - 如何在不删除增量目录的情况下使用 mysqlbackup 进行增量备份?

php - 我是否使用了太多的 MySQL 查询来获取所有具有特定标签的图像?

php - SQL 查询输出的倒序

Mysql存储过程死锁,复合唯一键

PHP, MySQL 从数据库中获取 "max_updates"值

mysql - 有没有更好的方法来编写这个查询

mysql - 为什么 MySQL 优化器不使用所有列索引?

mysql - 更新 WHERE Field IN

mysql - 如何使用其他三个表中列的平均值更新一个表中的分数列?

mysql - 具有空值的特定 MYSQL View