|
||||
Fast Doubletten mit SQL sauber filtern
Hi,
ich habe eine SQL Tabelle mit Kfz-Händlern. Jeder Händler kann Fachhändler für eine Marke sein (zb. Fachhändler für Audi) leider sind die Datensätze doppelt erfasst worden und ich habe zb ganz unten auf Kfz-Händler Düren 2 Mal den Händler "Wolff & Meier GmbH" drin weil der einmal Fachhändler für Audi und 1x für VW ist. - Gibt es eine SQL JOIN Abfrage mit der ich das in der Ausgabe abfangen kann? - Ich scheue mich ein wenig alle Datensätze zu normalisieren. Wäre dann eine Händler Tabelle und eine "Maken / Fachhändler für" Tabelle der richtige Weg? |
Sponsored Links |
|
||||
Normalisieren kommt vor Join.
Dein Problem in diesem Fall: Du hast den Händler 2 mal drin, weil er 2 mal vorkommt. Eine Normalisierung (die hilft) solltest du durchführen. Du hast in diesem Fall mindesten (beim groben Nachdenken) 4 Tabellen: Tabelle 1: Händler Tabelle 2: Orte Tabelle 3: Automarken Tabelle 4: Kreuztabelle Händler/Automarken Sollte es verbesserbar sein, her damit, wie gesagt nur grob überschlagen.
__________________
Hier ein immer gültiges Statement: Überarbeite deine Code, lerne die Grundlagen, widersprich mir nicht, wehre dich nicht, ich habe Recht, wir sind Lolgion, wir sind viele.. potato... All meine Angaben sind ohne Gewähr, es könnte also trotz meiner Unfehlbarkeit dazu kommen dass ich falsch liege www.richard-thiel.de | Müssen Websiten überall gleich ausschauen? |
Sponsored Links |
|
||||
Denke auch, dass du die Tabellen etwas normalisieren solltest.
Stellt sich allerdings die Frage wie weit. Imo macht es keinen Sinn die Orte/Adressen von den Händlern zu trennen, da diese 1:1 dem Händler zugeordnet sind und wahrscheinlich auch nur in diesem Kontext benötigt werden. Sie sollten aber nur einmal auftauchen. Mein Vorschlag wäre daher: - Händler - Automarken - Kreuztabelle Händler <-> Automarken Bei der Abfrage (...from Händler ... join Händler_Automarken ... join Automarken ...) würden dann allerdings wieder (je nach join) entweder die Datensätze der Händler verdoppelt oder es würden Automarken rausfallen. Oder du musst für jeden Händler ein eigenes Select für die Automarken ausführen, entweder als Sub-Select im Haupt-Query, oder (schlimmer) innerhalb der Schleife als eigenständiges Query. Eine Möglichkeit wäre der Join über alle 3 Tabellen, welches dann per GROUP BY nach Händlern gruppiert wird und die Automarken kannst du dir dann per GROUP_CONCAT z.B. als Liste mit Komma getrennt direkt in eine Spalte holen. |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Softwareentwickler (m/w) im Bereich Bauwesen – .NET, C#, SQL, XML und HTML Kenntnisse | gw-software | Jobs | 0 | 03.05.2012 13:46 |
SQL Abfrage | gabischatz | Serveradministration und serverseitige Scripte | 4 | 23.04.2011 12:05 |
SQl Abfrage :S | erxx | Serveradministration und serverseitige Scripte | 5 | 05.08.2008 19:35 |
Sql | Scheppertreiber | Serveradministration und serverseitige Scripte | 2 | 02.06.2008 09:42 |
SQL Export und Import - Probleme | wolf1985 | Serveradministration und serverseitige Scripte | 6 | 18.05.2008 13:07 |