Announcement

Collapse
No announcement yet.

Tabellenübergreifende Datenbankabfrage!?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tabellenübergreifende Datenbankabfrage!?

    Hi Leute,
    hab eine funktionsfähige Datenbank mit Homepage die seit ungefähr 1 Jahr läuft. Nun würde ich gerne ein paar Änderungen vornehmen die mich vor ein paar Probleme stellen.
    Die Datenbank ist etwas größer als hier beschrieben, ich gebe euch allerdings nur die nötigen Informationen um den Überblick zu vereinfachen J …
    Und zwar habe ich 3 Tabellen mit jeweils 2 Spalten:

    (Bilder der Tabellen und Homepage im Anhang)

    employees-->emp_id --- emp_name
    service_items-->item_id --- item_name
    service_assignments-->emp_id --- item_id

    Bei der Homepage habe ich unter der Navigation "Service Items" 2 Spalten mit item_name und item_id und den dazugehörigen Einträgen.
    Nun kommen wir zu der eigentlichen Aufgabe:

    Und zwar soll ich unter Navigation "Service Items" eine 3te Spalte hinzufügen(emp_name) und Namen der Mitarbeiter denen die items zugewiesen wurden darstellen.
    Wäre echt super wenn mir einer die SELECT Abfrage an die Datenbank zusammenbasteln könnte bzw. erklären wie sowas funktioniert.. Die restliche Implementierung dürfte ich alleine hinkriegen mir geht es hier hauptsächlich um die SELECT ABFRAGE!!!
    Danke schonmal im voraus

    MFG
    Earl

  • #2
    Verknüpfe alle 3 Tabellen über die entsprechenden IDs:
    Code:
    SELECT si.item_name, e.emp_name, si.item_id
    FROM employees e, service_items si, service_assignments sa
    WHERE e.emp_id=sa.emp_id AND si.item_id=sa.item_id;
    Das funktioniert, ist aber nicht sehr elegant und/oder performant. Eigentlich nimmt man dafür joins.

    Thomas

    Comment


    • #3
      Hier eine klinen Einleidung in SQL-Join-Syntax

      Comment


      • #4
        Originally posted by Thomas Henkel View Post
        Das funktioniert, ist aber nicht sehr elegant und/oder performant. Eigentlich nimmt man dafür joins.
        Über Eleganz kann man ja vielleicht streiten, Performance sollte hier aber kein Aspekt sein.
        Ich kenne keinen Optimizer wirklich im Detail, aber es würde mich wundern, wenn einer explizit für ein Filter Kriterium ein schlechteren Plan als für einen ANSI JOIN baut.
        M.E. handelt es sich nur um verschiedene Syntax.
        Gruß, defo

        Comment


        • #5
          super danke!!! funktioniert soweit!!! trotzdem werde ich mich mal mit JOINS näher befassen... danke für denk Link Bernhard und für die schnelle Antwort Thomas...

          MFG Earl

          Comment

          Working...
          X