Daniel: Datensatz wird statt 1mal 5mal zurückgegeben

Beitrag lesen

Guten Morgen, Rouven

also pass auf, das Problem ist meine ich folgendes:
Wenn du einen JOIN über zwei Tabellen machen würdest, dann müsstest du der DB sagen welche Spalte in den Tabellen gleich sein soll, damit es aus den 2 Tabellen den 1 Datensatz auslesen kann
SELECT nachnamen.name, vornamen.vorname
FROM nachnamen INNER JOIN vornamen
ON nachnamen.namenid = vornamen.namenid
WHERE nachname = 'mueller' OR vorname = 'hansi'

Ja genau, aber ich habe das zusätzliche Problem, dass die 2 Tabellen in keiner Relation zueinander stehen, sie sind zwar ähnlich aufgebaut, aber jeder Eintrag ist einzigartig, also kann ich sie nicht über einen Schlüssel Joinen. :(

D.h. (die Reihenfolge jetzt mal außer Acht gelassen) er führt die beiden Tabllen zusammen, macht aus allem 1 Datensatz wo die namenid beider Tabellen übereinstimmt und filtert dann anschließend anhand von nachname und vorname im WHERE die interessanten Datensätze heraus.

Ich habe mich etwas im Internet umgeschaut und herausgefunden, das ich einen Cross Join verwendet habe, bei all den anderen Joins (soweit ich gesehen habe) braucht man einen Schlüssel, den ich aber nicht habe.Deswegen kommen auch die 5 Datensätze zustande, da er jeden gefundenen Datensatz in Tabelle1 mit dem anderen Datensatz in Tabelle 2 vergleicht. Ich müsste das nur noch irgendwie auf einen beschränken können.

Bei deiner Abfrage benutzt du quasi so einen "impliziten" JOIN indem du einfach tabelle1, tabelle2 schreibst. Wenn du jetzt nicht im WHERE Kriterium ein Kriterium angibst (unabhängig von sendungs_id), in dem beide Tabellen übereinstimmen müssen damit es eine gültige Ergebniskombination ist, dann wird sich die Datenbank wahrscheinlich überlegen, wie sie die beiden Tabellen zusammenführen kann - was das Ergebnis ist? Who knows...

Leider habe ich auch keinen anderen Wert den ich vergleichen könnte, da die Tabellen wie gesagt unabhängig voneinander sind und jeder Eintrag nur 1x existiert.

Tut mir leid falls ich dich mit für dich wahrscheinlich lächerlichen Fragestellungen konfrontiere, aber ich habe bis jetzt eigentlich eher mehr mit simplen Datenbankabfragen gearbeitet, und demnach auch noch nicht so eine Routine darin wie manch anderer :)

Grüsse,
Daniel