Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

MySQL - JOIN Befehl - Zuteilung der Spalten

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von Aslan1905, 2 Januar 2014.

  1. Aslan1905

    Aslan1905 Neuer Benutzer

    Hallo,

    Code:
    
    SELECT auftrag.ID,
    mitarbeiter.ID, mitarbeiter.Vorname, mitarbeiter.Nachname, team.Team, auftrag.EinsatzgebietNr, auftrag.Auftragsdatum, pkw.ID, pkw.Marke, pkw.Modell, pkw.Kennzeichen, ort.ID, ort.Ort, ort.PLZ, ort.Straße, ort.Ort AS HS_Ort, ort.PLZ AS HS_PLZ, ort.Straße AS HS_Straße
    
    FROM auftrag
    LEFT JOIN team ON team.ID = auftrag.AuftragnehmerID
    LEFT JOIN pkw ON pkw.ID = auftrag.PkwID
    LEFT JOIN ort ON ort.ID = auftrag.StandortID
    LEFT JOIN mitarbeiter ON mitarbeiter.ID = team.IDMitarbeiter
    WHERE team.IDMitarbeiter = mitarbeiter.ID
    
    
    Ich möchte, dass die Orte (ohne alias) in verbindung mit auftrag.StandortID gesetzt wird und Orte die als Alias definiert wurden auftrag.HotspotID zugewiesen bekommen. Im moment erhalten beide auftrag.StandortID.

    Wie kann ich das jetzt realisieren? Geht das überhaupt?

    Ich wusste nicht mal wonach ich bei meinem Problem recherchieren sollte. Ich hoffe, ich konnte mich einigermaßen verständlich ausdrucken =X

    Vielen Dank im Voraus.
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Ähm - nein. Ich versteh es nicht, was Du willst. Vielleicht zeigst Du es mal an einem vereinfachten Beispiel mit Daten.
     
  3. akretschmer

    akretschmer Datenbank-Guru

    Was ist grad seh:

    Code:
    ort.Ort, ort.PLZ, ort.Straße, ort.Ort AS HS_Ort, ort.PLZ AS HS_PLZ, ort.Straße AS HS_Straße
    
    Kann man machen, hat man halt dieselben Daten 2-mal im Resultat. Muß man aber nicht machen, weil: ist sinnfrei.
     
  4. Aslan1905

    Aslan1905 Neuer Benutzer

    Genau diesen möchte ich unterschiedliche Werte zuweisen können, die aus der Tabelle Ort kommen. Wie wird so etwas gemacht?
     
  5. akretschmer

    akretschmer Datenbank-Guru


    ort.Ort und ort.Ort as HS_Ort sind einfach 2 Spalten im Resultat, die aus der selben Quellspalte kommen: Tabelle Ort, Spalte Ort. Wo soll denn der 'andere' Wert herkommen, wenn nicht aus ort.Ort? Da mußt schon einen andere Tabelle und/oder Spalte angeben.
     
  6. Hubertus

    Hubertus Fleissiger Benutzer

    Vielleicht so (ungetestet):
    Code:
    SELECT auftrag.ID,
           mitarbeiter.ID, mitarbeiter.Vorname, mitarbeiter.Nachname,
           team.Team,
           auftrag.EinsatzgebietNr, auftrag.Auftragsdatum,
           pkw.ID, pkw.Marke, pkw.Modell, pkw.Kennzeichen,
           ort.ID, ort.Ort, ort.PLZ, ort.Straße,
           ort_HS.Ort AS HS_Ort, ort_HS.PLZ AS HS_PLZ, ort_HS.Straße AS HS_Straße
    FROM auftrag
    LEFT JOIN team ON team.ID = auftrag.AuftragnehmerID
    LEFT JOIN pkw ON pkw.ID = auftrag.PkwID
    LEFT JOIN ort ON ort.ID = auftrag.StandortID
    LEFT JOIN ort ort_HS ON ort_HS.ID = auftrag.HotspotID
    LEFT JOIN mitarbeiter ON mitarbeiter.ID = team.IDMitarbeiter
    WHERE team.IDMitarbeiter = mitarbeiter.ID
     
    akretschmer gefällt das.
  7. akretschmer

    akretschmer Datenbank-Guru

    Ahhh, jetzt macht's klack: er will die Orte 2 mal unterschiedlich joinen, ja, ...
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden