mysql加入,似乎不起作用(Select_full_join)

时间:2012-09-05 14:46:00

标签: mysql phpmyadmin

我在加入我的桌子时遇到了一些问题。

在进行查询时,我得到一个红旗:

  

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 

1 个答案:

答案 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;