Transitivität bei SQL



  • Hallo,
    wollte für ein Projekt, mittels PHP und MYSQL einen kleinen Suchalgorithmus
    schreiben und hab da ein Problem, bei welchem ich einfach keine Lösung finde.
    Zum Projekt:
    Ich hab eine Datenbank mit den Spalten "Id", "Von", "Ueber" und "Nach".
    In den letzten 3 Spalten stehen jeweils Ortsnamen.
    Meine Such-Funktion bekommt einen Start- und Zielort und diese soll dann die passende ID aus der Datenbank holen.

    Soweit kein Problem, das müsste ja mit nem einfachen SELECT gehen:

    SELECT Id FROM tabelle WHERE (Von=\"$von\" || Ueber=\"$von\") && (Nach=\"$nach\" || Ueber=\"$nach\")
    

    Mein Problem ist aber, ich möchte auch Transitivität (das heißt "von A nach C = von A nach B + von B nach C").
    Hab mir jetzt überlegt, dass ich dann halt erstma alle Datensätze auslese, welche entweder den richtigen Startort ODER den richtigen Ankunftsort haben. Also inetwa so:

    SELECT Id FROM tabelle WHERE (Von=\"$von\" || Ueber=\"$von\") || (Nach=\"$nach\" || Ueber=\"$nach\")
    

    Nur wie kann ich dann die Datensaätze am besten miteinander vergleichen?
    Bzw. ist mein Ansatz wenigstens halbwegs richtig ... oder wie kann man es besser machen?

    Wer echt nett wenn mir einer helfen würde, lerne PHP bzw SQL erst seit ein paar Wochen und steht echt aufm Schlauch.

    Danke schonmal im Vorraus.

    PHP-Schüler


Anmelden zum Antworten