嗨,有没有办法限制我的内部联接?
所以我可以将输出限制为仅返回最后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],))
马特
答案 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();