从2个表中拉出以收集仅匹配项的结果

时间:2016-10-08 02:30:10

标签: php mysql

我的SQL面板中有2个表。我有一个看起来像这样的

这个叫做游戏:

ID | Game | Season
 1   MKX2     3
 2   GMR      4
 3   GH4      3

然后我为用户注册了一个名为game_stats的游戏:

ID | User    | GID | Season | Points
 1   Jordan     1      2        10
 2   Jordan     1      3        15
 3   Jordan     3      3        25
 4   Grape      2      1        16
 5   Grape      2      4        17

如何在当前季节拉出用户最近的game_stats?所以,让我们说我想抓住乔丹最重要的游戏统计数据。但是,我想只抓住与游戏季节相匹配的行。例如,如果我抓住乔丹,我想要这些行:

ID | User    | GID | Season | Points
 2   Jordan     1      3        15
 3   Jordan     3      3        25

所以,game_stats中的ID 1被遗漏了,因为没有季节匹配数字" 2"在原始游戏桌上。如果他报名参加,这将给我当前的赛季。

如何组合表来执行此操作?

1 个答案:

答案 0 :(得分:0)

您可以使用INNER JOIN

SELECT a.ID,
       a.USER,
       a.GID,
       a.Season,
       a.Points
FROM   game_stats a
       JOIN games b
         ON a.GID = b.ID
            AND a.Season = b.m_season 

或者您可以使用Exists

SELECT ID,
       USER,
       GID,
       Season,
       Points
FROM   game_stats a
WHERE  EXISTS (SELECT 1
               FROM   game_stats b
               WHERE  a.GID = b.ID
                      AND a.Season = b.m_season)