Angenommen ich eine Tabelle von Fahrzeugen haben:Wie kann ich beitreten selektiv
v color col3 col4 col5 .....
car red
train gray
plane white
car blue
bike black
(1000 more)
und eine Tabelle mit Einstufungen:
prio v color class
1 car red C1
2 car % F3
3 plane % W1
4 bike blue B4
5 bike white B8
6 bike % O9
Die Einstufungen Tabelle ist klein, weniger als 100. Nur eine Lookup-Tabelle . Bei Bedarf können wir den Fahrzeugen eine id
Säule hinzufügen.
Jetzt möchte ich die Klassifizierung in die Tabelle der Fahrzeuge hinzufügen. Die Anzahl der Reihen in Fahrzeugen darf sich nicht ändern. Das Ergebnis sollte:
v color class
car red C1
train gray
plane white W1
car blue F3
bike black O9
(1000 more)
Nun, wenn ich
SELECT vehicles v
LEFT JOIN classifications c ON v.v LIKE c.v AND v.color LIKE c.color
bekomme ich doppelte Einträge, weil die Klassifizierung Match nicht eindeutig ist. Zum Beispiel entspricht ein weißes Fahrrad Regel 5 und 6, in diesem Fall muss Regel 5 genommen werden, weil es die niedrigere prio
hat.
Wie kann ich die Duplikate vermeiden?
Vielen Dank, Ihre Lösung scheint es zu tun. Ich wusste nicht, dass ich eine "Auswahl" haben kann, wo eine Spalte benötigt wird. Ich benutze "Gefällt mir", weil ich einen Mustervergleich machen möchte !? Was, wenn ich 2 Spalten aus der Klassifizierungs-Tabelle haben möchte, sagen wir Klasse1 und Klasse? Ich muss die korrelierte Abfrage für eine andere Spalte wiederholen? – jms
Aber Sie sind nicht passendes Muster, Sie verwenden entweder exakte Übereinstimmung, oder entspricht '%', keine Notwendigkeit für 'LIKE' @jms – sagi