1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

JOINS

Dieses Thema im Forum "Allgemeine Diskussionen" wurde erstellt von Kampfgummibaerlie, 30 November 2017.

  1. Kampfgummibaerlie

    Kampfgummibaerlie Datenbank-Guru

    Nachdem ich hier auf einmal suchen keinen Thread gefunden habe, in welchem es sich nur um das Wort JOINS handelt, erstelle ich den mal, mit der Überlegung, ob ich es nicht in das Thema "Allgemeine Diskussionen" stellen sollte, hier.

    Was weiß ich von Joins:

    Inner-Join:
    Ein Inner-Join beinhaltet nur die Werte, die in allen gegebenen Tabellen/Spalten identisch sind.

    Left-Join:
    Ein Left-Join gibt alle Werte, die rechts identisch sind mit der aus der linken Tabelle/Spalte.

    Right-Join:
    Ein Right-Join gibt alle Werte, die links identisch sind mit der aus der rechten Tabelle/Spalte.

    Cross-Join:
    Ein Cross-Join gibt alle Werte, wie man die beiden Tabelle miteinander kombinieren kann.

    Soviel weiß ich von Joins, ich glaube schonmal von Right/Left outer joins gehört zu haben, von welchen ich aber kaum bis keine Erfahrungen gewinnen durfte.

    Ich würde hier gerne nachholen, was mir bereits zu meinen SQL-Anfangs-Zeiten nicht sehr gut gefiel, jetzt nachholen (Abitur nachholen mit 60, im Vergleich, nur dass ich ein wenig jünger bin :D)

    Würde mich freuen, wenn ich hier den Join-Methoden näher gebracht werde, oder sie mir ;) wie es euch lieber ist.

    Wie immer, herzlichen Dank für ein jede Antwort :)
     
  2. akretschmer

    akretschmer Datenbank-Guru

    google einfach mal, es gibt massig Beispiele zu Joins, wann man sie wie anwendet.
     
  3. Kampfgummibaerlie

    Kampfgummibaerlie Datenbank-Guru

    Ich glaube, es ist mir eine gewohnheitssache.

    Beziehungsweise auch von der "Unterrichtsreihenfolge" ^^

    Ich bin zurzeit noch in Wien, und der Server mit ausreichend viel Datensätzen ist nur lokal von Niederösterreich aus steuerbar...
    Ich mache es mehr nach dem Schema, nachdem ich ja nicht "mehr" weiß, dass ich immer 'die methode' nutze, die 'ans ziel' führt.

    Wenn ich wieder zuhause bin, werde ich mich näher mit den Join-Regeln und so weiter befassen. (Falls ich es mir solange merke :D)
     
  4. Kampfgummibaerlie

    Kampfgummibaerlie Datenbank-Guru

    schaue mir gerade ein englisches YouTube-Video an, welches das ganze offenbar klarstellt.

    Sprich, ich muss garnicht mittels einer Trigger-Function den Kundennamen (falls vorhanden) in die Tabelle Vermietungen eintragen, damit ich dann den Namen auch von der Tabelle Vermietungen nehmen kann, sondern einfach nur per Join... faszinierend :D

    Ich schau mal brav weiter :p
     
  5. Kampfgummibaerlie

    Kampfgummibaerlie Datenbank-Guru

    Wofür ich ein wenig bezüglich Verständniss gebraucht habe bei Joins war auch:

    Ich wollte es immer in diese Richtung probieren:
    Code:
    select * from table1 where (Bedingung) inner join on table1.column1 = table2.column1
    
    Jetzt, wo ich ein wenig mehr dahinter gekommen bin, frage ich mich ernsthaft, wieso ich so gedacht habe.
    Also, um meinen Gedankenkreis auszuschreiben: Ich wollte von einer Tabelle nur bestimmte unter einer Bedingung nehmen, und nur diese wiederum mit Werten aus der 2. Tabelle "verbinden".

    Aber ja, wenn man Bedingungen will, setzt man die einfach nur in die Klammern nach dem "on", was immer in einem Join vorkommen sollte, glaube ich xD

    Also so funktionierts:
    Code:
    select * from table1 inner join table2 on (table1.column1 = table2.column1)
    
    Joins glaube ich sind enorm einfach, aber ja, auch durch die muss ich durch, und ich bin mehr motiviert, als je zuvor ! *Supermankostüm auspack*
    Bin nach wie vor sehr erfreut über die entsprechend offenbar sehr weit ausreizbare Geduld von bestimmten Personen *hust* MR. HELEPHANT ! ^^

    EDIT: Ja, danke liebe PostgreSQL-Dokumentation :D
     
  6. Kampfgummibaerlie

    Kampfgummibaerlie Datenbank-Guru

    ist es aktiv sinnvoll, Joins mittels einer View anzuzeigen?

    Sei es Leistung des Servers, praktischere Ausgabe, oder was auch immer...

    Meine View würde so aussehen:
    Code:
    CREATE VIEW act_mietungen AS
      select vermietungen.maschinen_id, maschinen.maschinen_typ, lower(mietzeit)::date as startdatum, lower(mietzeit)::time as startzeit,
      upper(mietzeit)::date as enddatum, upper(mietzeit)::time as endzeit from vermietungen inner join maschinen on
       (vermietungen.maschinen_id = maschinen.maschinen_id);
    
    In welcher wiederum der folgende Join steht:
    Code:
    select vermietungen.maschinen_id, maschinen.maschinen_typ, lower(mietzeit)::date as startdatum, lower(mietzeit)::time as startzeit,
      upper(mietzeit)::date as enddatum, upper(mietzeit)::time as endzeit from vermietungen inner join maschinen on
       (vermietungen.maschinen_id = maschinen.maschinen_id);
    
    Wer zu faul ist, den ganzen Post zu lesen, hier die Zusammenfassung:
    Ich frage mich, ob es aktiv sinnvoll ist, Views zu erstellen, welche wiederum einen Join enthalten, im Sinne von Leistungsersparniss.

    Danke für Antworten !
     
  7. akretschmer

    akretschmer Datenbank-Guru

    View dienen lediglich dazu, komplexe Abfragen zu vereinfachen. Zur Laufzeit wird für den Namen der View einfach dessen Definition eingesetzt. Bessere Performance erreichst Du damit aber nicht.
     
  8. Kampfgummibaerlie

    Kampfgummibaerlie Datenbank-Guru

    Sprich, solange ich die Datenbank einfach strukturiert lasse, bringt es sogar Nachteile mit sich.
    Auch wenn es nicht viel ist, aber ein jede erstellte View vebraucht Speicherkapazität ^^
     

Diese Seite empfehlen