繁体   English   中英

将 2 个 SQL 合二为一

[英]Combining 2 SQL's into one

$sql = "SELECT teams.id,teams.name,teams.updated
        FROM teams 
        ORDER BY teams.name ASC";
list($teams) = getrows($sql);

foreach($teams as $team)
{
    $sql = "SELECT time FROM events WHERE (home_team='".$team['id']."' OR away_team='".$team['id']."') AND (status='FT' OR status='PEN' OR status='AET') ORDER BY time DESC LIMIT 1";
    

所以我希望将它们组合成 1 sql 但我在尝试使用第一个 sql 的验证时遇到问题,如果我使用 LEFT JOIN (SELECT * FROM events WHERE team.id='|team from first query|')子查询中的原始团队 ID。 如果这有道理。

谢谢

我希望我正确理解了一切

SELECT MAX(events.time) AS latest_time, teams.id, teams.name, teams.updated
FROM events 
LEFT JOIN teams ON events.home_team=teams.id OR events.away_team=teams.id
WHERE ...
ORDER BY ...
GROUP BY teams.id

分组,因为我认为您在表事件中每个 team.id 有多行。 然后您可以使用 MAX() 提取最高(最新)时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM