我在加入我的桌子时遇到了一些问题。
在进行查询时,我得到一个红旗:
Select_full_join
不使用索引的联接数。如果此值不为0,则应仔细检查表的索引。
...我也得到了很多slow_queries
除了设置索引之外,还有什么我需要做才能使它工作吗? 我看到你可以在表或外键之间添加关系,也许这就是我需要的东西?
对于mysql,我是一个菜鸟。
这是我的疑问:
SELECT
m.numberOfPlayers as totalNumberOfPlayers,
COUNT(p.userId) AS currentNumberOfPlayers
FROM
matches_active m
LEFT JOIN matches_players p ON p.matchId = m.id
WHERE
m.id = 5922;
......这是我的桌子:
matches_active
id int(11)
numberOfPlayers int(11)
PRIMARY id
matches_players
userId int(11)
matchId int(11)
PRIMARY userId
matchId
答案 0 :(得分:1)
当您的查询使用聚合函数时,您应该GROUP BY
所有尚未聚合的字段
SELECT
m.numberOfPlayers as totalNumberOfPlayers,
COUNT(p.userId) AS currentNumberOfPlayers
FROM
matches_active m
LEFT JOIN matches_players p ON p.matchId = m.id
GROUP BY
m.numberOfPlayers
WHERE
m.id = 5922;