2017-02-26 3 views
1

Meine Tabellen sieht Joining wie folgt aus: zum Beispiel basierend auf tbl_teamstats „erstellt Abs Limit 1“ die Abfragezwei Tabellen zusammen mit mehreren Ergebnissen in einer Tabelle

tbl_teams 
id, teamname, created 

tbl_teamstats 
id, rank, rating, wins, losses, tbl_teams_id, created 

Ich möchte verschmelzen diese beiden Tabellen zusammen

SELECT TS.*, T.* FROM tbl_teamstats as TS 
LEFT JOIN tbl_teams as T 
ON T.id = TS.tbl_teams_id 

wäre so etwas wie dieses

TS.id TS.rank TS.rating TS.wins TS.losses T.id T.teamname    T.created 
14871 2  2522  168  26   2  teamname1    23/02/2017 17:55 
14688 2  2540  168  25   2  teamname1    23/02/2017 17:55 
2683 2  2535  167  25   2  teamname1    23/02/2017 17:55 
2612 2  2529  166  25   2  teamname1    23/02/2017 17:55 
2590 2  2523  165  25   2  teamname1    23/02/2017 17:55 
2448 2  2517  164  25   2  teamname1    23/02/2017 17:55 
2346 2  2511  163  25   2  teamname1    23/02/2017 17:55 
234  2  2505  162  25   2  teamname1    23/02/2017 17:55 
1  1  2570  171  19   1  teamname2    23/02/2017 17:55 

wh zurückkehren an ich will es so aussehen:

TS.id TS.rank TS.rating TS.wins TS.losses T.id T.teamname    T.created 
14871 2  2522  168  26   2  teamname1    23/02/2017 17:55 
1  1  2570  171  19   1  teamname1    23/02/2017 17:55 

(nur eine von Ergebnis zeigt tbl_teamstat von TS.id bestellt)

Könnte mir bitte jemand helfen oder mich in die richtige Richtung? Würde sehr geschätzt werden!

Antwort

1

Sie können maximale ID für jede tbl_team_id von tbl_teamstats in einer Unterabfrage finden und mit tbl_teamstats verbinden. Führen Sie dann die Joins nach Bedarf aus.

select * 
from (
    select t1.* 
    from tbl_teamstats t1 
    join (
     select tbl_teams_id, 
      max(id) id 
     from tbl_teamstats 
     group by tbl_teams_id 
     ) t2 on t1.tbl_teams_id = t2.tbl_teams_id 
     and t1.id = t2.id 
    ) ts 
left join tbl_teams as T on T.id = TS.tbl_teams_id 
+0

Thank you! Das hat es gelöst :) –

0

hinzufügen GROUP BY Klausel am Ende

SELECT TS.*, T.* FROM tbl_teamstats as TS 
LEFT JOIN tbl_teams as T 
ON T.id = TS.tbl_teams_id 
GROUP BY TS.rank 
Verwandte Themen