2016-05-28 17 views
0

Ich habe einen LKW, die Lieferungen machen, bei jeder Haltestelle notiert der Fahrer den Namen der Straße. Ich möchte Abfahrts- und Zielort vergleichen sicher um den Fahrer machen sie übereinstimmen:Wie zwei Zeilen in MySQL zu vergleichen

Departures | Destination 
-------------+-------------- 
Duck Street | Alley street. 
Alley street | Simpson street. 

Ich möchte nur sicherstellen, dass das alte Ziel von Zeile 1 und Aufbruchs von row2 immer übereinstimmen. Ich habe versucht, den Update-Trigger in MySQL, aber ich verstehe nicht die Syntax bitte helfen

+0

Warum nicht eine Verbindung verwenden? – Strawberry

+0

Gehen die Abfahrts- und Bestimmungsdaten in einer streng geordneten Reihenfolge oder sind irgendwelche anderen Lastkraftwagen registriert? – RomanPerekhrest

+0

Ich bin mir nicht sicher, ob ich verstehe, was du meinst Join, es ist eine zweispaltige Tabelle. – BrianBeaven

Antwort

1

Ihre Tabelle sollte eine inkrementierende id (oder Zeitangabe), so dass Sie identifizieren, welche die zuletzt eingefügten Straße ist.

Wenn Ihre Tabelle sieht wie folgt aus:

create table itinerary (
    id    int   auto_increment, 
    departure_street varchar(100), 
    arrival_street varchar(100), 
    primary key (id) 
); 

... dann könnte man diesen Trigger hinzufügen:

create trigger tr_ins_itinerary before insert on itinerary for each row 
    set new.departure_street = (
     select arrival_street 
     from  itinerary 
     order by id desc 
     limit 1); 

Siehe SQL fiddle.

Sie könnten verschiedene Treiber haben und speichern Sie die driver_id in dieser Tabelle. In diesem Fall benötigen Sie eine where Klausel im Trigger:

...where driver_id = new.driver_id... 
+0

Hat sich das für Sie gelohnt? Könntest du mich wissen lassen? – trincot