MYSQL Join aber nur prüfen ob wert in tabelle?
baeckerman83
- datenbank
0 hotti0 dedlfix0 Malcolm Beck´s
Hiho!
Ich habe ein Problem bei Mysql und kann nichts dazu finden, weil ich sicher falsch suche. Ich versuche mit Joins infos zubekommen, dabei werden aber mir soviele zeilen in der Ausgabe angezeigt wie die Mannschaft in der Tabelle Spiele vorkommen. Wie kann ich ihm da sagen, dass er das nur einmal anzeigen soll?
Mysql:
select liga, land_de from team_liga
join liga l on id_liga_xml=xml_id_liga
join land la on l.id_land=la.id_land
join mannschaft m on m.id_mannschaft_xml=5
join spiel s on (s.id_heim=m.id_mannschaft and s.id_liga=l.id_liga)
where id_team=5;
Ausgabe:
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'FATrophy', 'England'
hi,
Ich habe ein Problem bei Mysql und kann nichts dazu finden, weil ich sicher falsch suche. Ich versuche mit Joins infos zubekommen, dabei werden aber mir soviele zeilen in der Ausgabe angezeigt wie die Mannschaft in der Tabelle Spiele vorkommen. Wie kann ich ihm da sagen, dass er das nur einmal anzeigen soll?
Deine Tabellen sind nicht normalisiert. Workaround: Distinct.
Hotti
Deine Tabellen sind nicht normalisiert. Workaround: Distinct.
Hotti
Echt daran liegt das? Dachte meine Tabellen sind normalisiert. Das ist natürlich schlecht, dann habe ich da ja im DB Design einen Fehler.
Tach!
Deine Tabellen sind nicht normalisiert. Workaround: Distinct.
Echt daran liegt das? Dachte meine Tabellen sind normalisiert. Das ist natürlich schlecht, dann habe ich da ja im DB Design einen Fehler.
Möglicherweise nicht. Je nach Join und Bedingung passen auf einen Datensatz der einen Tabelle mehrere Datensätze einer anderen Tabelle. Soviele wie passen, soviele Ergebnisdatensätze ergibt das. Siehe SELFHTML-Wiki: Einführung in Joins.
dedlfix.
hi,
Echt daran liegt das? Dachte meine Tabellen sind normalisiert. Das ist natürlich schlecht, dann habe ich da ja im DB Design einen Fehler.
Auf den (meinen) ersten Blick ja, weil Du einen INNER Join machst. Ein solcher sollte mit normalisierten Tabellen keine Doubletten liefern, vorausgesetzt, dass die Where-Klause stimmt.
Hotti
Tach!
Ich habe ein Problem bei Mysql und kann nichts dazu finden, weil ich sicher falsch suche. Ich versuche mit Joins infos zubekommen, dabei werden aber mir soviele zeilen in der Ausgabe angezeigt wie die Mannschaft in der Tabelle Spiele vorkommen. Wie kann ich ihm da sagen, dass er das nur einmal anzeigen soll?
Eine korrelierte Unterabfrage (correlated subquery) könnte die Lösung sein. Aus deinem Code allein geht leider nicht hervor, wie die Tabellen aussehen und welche Informationen woher kommen. Deswegen kann ich momentan nicht genauer werden.
dedlfix.
مرحبا
Ausgabe:
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'NonLeagueDivOne-SouthernSW', 'England'
'FATrophy', 'England'
Hilft hier nicht auch ein einfaches Group By? Die Daten sehen Identisch aus. Wenn alle die gleiche ID haben, sollte Group By doch schon reichen?
mfg