Forum: PC-Programmierung Frage zu MySQL Join


von Karl (Gast)


Lesenswert?

Hallo zusammen,

ich habe 2 Tabellen, die in einer 1:n Beziehung zueinander stehen.
Per left Join kann ich die beiden Tabellen durchsuchen und die 
gewünschten Felder ausgeben.
Mein Problem ist, dass ich die Ergebnisse für eine Instant-Suche nutzen 
möchte und ich bei den Reihen mit Daten aus beiden Tabellen auch noch 
die ursprüngliche linke Seite des Joins genau ein mal als eigenständige 
Reihe benötige. Anonsten fehlen mir Datensätze in den Suchergebnissen, 
da ich auswählen möchte, ob ich den Hauptdatensatz alleine aufrufe, oder 
den Hauptdatensatz + per Join gefundenen verbundenen Datensatz.

Macht man da 2 Abfragen (einen INNER JOIN + eine normale Suche in der 
linken Tabelle alleine) und verbindet die dann per UNION und sortiert 
anschließend mit ORDER BY?

Oder gibt es eine bessere Lösung?

Viele Grüße
Karl

von Clemens L. (c_l)


Lesenswert?

UNION ALL statt UNION wäre eine bessere Lösung.

von Peter II (Gast)


Lesenswert?

Karl schrieb:
> Oder gibt es eine bessere Lösung?

einfach in der Anwendung doppelte Einträge überspringen. Dafür muss man 
doch nicht 2 mal abfragen.

a    b
1    a1
1    b2
2    a1
2    b2

dann ist es wohl kein Problem, in der Software wenn das Result geladen 
wird nur eindeutige werte von a zu übernehmen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.