1

我试图为“spielplan”的每个元素获取“live_spiele”的一个元素(最后一个)。这是整个查询:

SELECT live.resh as l_resh, live.resa as l_resa, s.spielid, s.datum, s.zeit
       , s.ort, t.name, t.kurzname, s.gegner, s.resh, s.resa 
       from spielplan s
          LEFT JOIN (Select l.livespiel_id, l.resh, l.resa, l.spiel_id from live_spiele l) 
          live on s.spielid = live.spiel_id
       , teams t
       WHERE DATE(s.datum) BETWEEN '".$date1."' AND '".$date2."' 
       AND s.teamid = t.teamid 
       ORDER BY datum, zeit

但这给了我超过 1 行的“spielplan”中的一个元素,如果有多行是具有相同标识符的“live_spiele”。

我尝试的是子查询中的 MIN/MAX,但这没有帮助,因为 MIN/MAX 值通常不是标识符的正确值。我也尝试了限制,但我没有得到解决方案。

有没有办法只选择标识符与“spielplan s”标识符相同的“live_spielplan”?

4

1 回答 1

1

使用GROUP BY条款:

SELECT live.resh as l_resh, live.resa as l_resa, s.spielid, s.datum, s.zeit
   , s.ort, t.name, t.kurzname, s.gegner, s.resh, s.resa 
from spielplan s
LEFT JOIN (Select l.livespiel_id, l.resh, l.resa, l.spiel_id from live_spiele l) 
live 
on s.spielid = live.spiel_id
, teams t
WHERE DATE(s.datum) BETWEEN '".$date1."' AND '".$date2."' 
AND s.teamid = t.teamid 
ORDER BY datum, zeit GROUP BY s.spiel_id
于 2013-10-24T09:54:08.613 回答