我怎样才能限制INNER JOIN?

时间:2016-08-29 11:34:01

标签: mysql sql join

嗨,有没有办法限制我的内部联接?

所以我可以将输出限制为仅返回最后5个match_ids?

SELECT t.id
     , ff.match_id
     , ff.time
  FROM football_teams t
  JOIN 
     ( SELECT match_id
            , hometeam_id
            , time
         FROM football_fixtures 
        ORDER 
           BY time DESC 
        LIMIT 5
     ) ff
    ON ff.hometeam_id = t.id
 WHERE t.id IN ( ".$team_id_string." ) 
 ORDER 
    BY t.id

我看着返回一个数组

类似这样的事情

array([football_team.id] = array(match_id [1],match_id [2],match_id [3],match_id [4],match_id [5],))

马特

2 个答案:

答案 0 :(得分:1)

根据评论,我假设football_fixtures表中的5条最新记录与查询中的其他条件不匹配,因此 - 不返回任何内容。我建议在外部查询中设置限制以确保选择5条记录:

SELECT s.* FROM 
    (SELECT 
            football_teams.id,
            ff.match_id,
            ff.time
            FROM football_teams 
    INNER JOIN football_fixtures ff
     ON hometeam_id=football_teams.id
    WHERE football_teams.id IN ( ".$team_id_string." )
    ORDER BY ff.time
    LIMIT 5) s
ORDER BY s.id

答案 1 :(得分:0)

我会为您的查询建议此表单。我删除了联接,因为在此特定查询中使用它没有意义。

HelloRunnable hr = new HelloRunnable();
hr.run();