Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: joins

  1. #1
    Forum Guru
    Registriert seit
    13.01.2005
    Ort
    Schweiz
    Beiträge
    5.240
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard joins

    hallo.

    ähm - wie geht das genau mit den JOIN's?
    ich habe zb. eine tabelle `users` - mit einer spalte `user_id` - dann eine tabelle `profile` mit einer spalte `user_nr`.

    kann ich jetzt mit einem JOIN das SELECT vereinfachen oder hab ich was falsch verstanden?
    wie müsste ich das machen?

    danke - phore
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Forum Guru Avatar von driver
    Registriert seit
    10.04.2006
    Alter
    34
    Beiträge
    20.729
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Code:
    FROM QuellTabelle1 [Join-Typ] Tabelle [ON (Join Bedingung)
    Inner Join: Inner Join gibt nur die Datenreihen aus den Tabellen an, welche eine gemeinsame Übereinstimmung besitzten. Z.B.: Sie erhalten nur jene Produkte die einem Lieferanten auch zugeordnet sind.

    Outer Join: Outer Join beinhalten auch Datenreihen die keine verwandten Daten in der anderen Tabelle besitzen. Bei der Verwendung von Outer Join bekommen Sie z. B. auch Lieferanten die (im Moment) keine Produkte an Sie liefern.


    beispiel:
    Code:
    SELECT ProductName, CompanyName, UnitPrice 
    FROM Suppliers INNER JOIN Products
    ON (Suppliers.SupplierID = Products.SupplierID) 
    WHERE UnitPrice <= $70
    wennst access hast, kannst dir glaub ich auch mal testweise sowas
    zusammenbasteln und dann anschauen....
    >> die icq-schreiberlinge bitte dies hier beachten



    1679 entdeckte Gottfried Wilhelm Leibniz das Binärsystem, bei einem Gespräch mit seiner Mutter: "Ja..., Nein..., Nein..., Nein..., Ja..., Ja..., Nein..."

  3. #3
    Forum Guru
    Themenstarter

    Registriert seit
    13.01.2005
    Ort
    Schweiz
    Beiträge
    5.240
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    also bei mir würde es etwa so aussehen?

    Code:
    SELECT `irgendwas`
    FROM `profile`
    INNER JOIN `contact`
    ON &#40;profil.user_nr = contact.user_nr&#41;
    WHERE `user_nr` = '$userId'
    naja probieren geht über studieren - ich teste das mal
    danke dir

  4. #4
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    wenn du schon mal dabei bist erklär gleich ma die join types:

    CROSS
    LEFT
    NATURAL
    RIGHT

  5. #5
    Forum Guru
    Themenstarter

    Registriert seit
    13.01.2005
    Ort
    Schweiz
    Beiträge
    5.240
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    die typen kenn ich eigentlich von der berufsschule her - hab einfach nicht gewusst wie ich die anwenden kann/muss.

  6. #6
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    dann fidne es mal raus und schreib ein kleines tutorial....

    ich bin selbst noch net so fitt mit joins usw...

  7. #7
    Forum Guru
    Themenstarter

    Registriert seit
    13.01.2005
    Ort
    Schweiz
    Beiträge
    5.240
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    ok mal schauen was sich machen lässt.

  8. #8
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    ist recht interessant...

    voralem da joins schneller sein sollen als einfache selects über mehrere tabs...

    erhebtlich schneller

  9. #9
    Forum Guru Avatar von driver
    Registriert seit
    10.04.2006
    Alter
    34
    Beiträge
    20.729
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Cross Join, Kartesisches Produkt
    Verbindet jede Zeile der ersten Tabelle mit jeder Zeile der zweiten Tabelle

    Inner Join = Equivalent Join
    Verbindet Datensätze aus zwei Tabellen, sobald ein gemeinsames Feld dieselben Werte enthält.

    Natural Join
    Verknüpft die beiden Tabellen über die Gleichheit aller gleichlautenden Spalten. Gleichlautende Spalten werden im Ergebnis nur einmal angezeigt. Haben die Tabellen keine gleichlautenden Spalten, wird der Natural Join zum Cross Join. Gibt es nur eine gleichlautende Spalte, so ist der Natural Join ein Inner Join mit anschließender Projektion, bei der gleichnamige Spalten ausgeblendet werden.
    Für den Natural Join gibt es keinen speziellen SQL92-Befehl. Er wird bei Bedarf aus einem Inner Join mit anschließender Projektion erzeugt.

    Left Outer Join = Left Join
    Mit einem Left Join wird eine sogenannte linke Inklusionsverknüpfung erstellen. Linke Inklusionsverknüpfungen schließen alle Datensätze aus der ersten (linken) Tabelle ein, auch wenn keine entsprechenden Werte für Datensätze in der zweiten Tabelle existiert.

    Right Outer Join = Right Join
    Mit einem Right Join wird eine sogenannte rechte Inklusionsverknüpfung erstellen. Rechte Inklusionsverknüpfungen schließen alle Datensätze aus der zweiten (rechten) Tabelle ein, auch wenn keine entsprechenden Werte für Datensätze in der ersten Tabelle existiert.

    Full Outer Join = Full Join
    Eine Kombination von Left Outer Join und Right Outer Join.

    Union Join
    Ähnlich dem Full Outer Join werden Datensätze beider Tabellen aufgenommen. Sie werden aber nicht über eine Bedingung verknüpft.

    Semi-Join
    Der Semijoin der Tabellen "Mitarbeiter" und "Projekte" ist ein Natural Join der zwei Tabellen mit anschließender Projektion auf die Attribute der ersten Tabelle

    Theta Join, Non-Equivalent-Join
    Der Theta Join ist eine Verallgemeinerung des Inner Join. Während beim Inner Join die Gleichheit des Inhalts zweier Attribute verglichen wird, wird beim Theta Join der Inhalt der Attribute i und j mit einer beliebigen Formel Theta(i,j) verglichen, etwa i = j (i gleich j; InnerJoin), i < j (i kleiner j), i <= j (i kleiner oder gleich j), i > j (i größer j) usw

    Self-Join
    Der Self-Join ist ein beliebiger Join, bei dem nicht zwei verschiedene Tabellen benutzt werden, sondern zweimal dieselbe Tabelle.



    ich hab des zwar alles mal gelernt... aber dafür musst ich etz auch erstmal nachschauen *G*
    quelle
    >> die icq-schreiberlinge bitte dies hier beachten



    1679 entdeckte Gottfried Wilhelm Leibniz das Binärsystem, bei einem Gespräch mit seiner Mutter: "Ja..., Nein..., Nein..., Nein..., Ja..., Ja..., Nein..."

  10. #10
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ok danke..

    aber kann mir mal einer die abfrage auf join unsetzen:

    Code:
    SELECT 
    a.id, 
    a.artikelnummer, 
    a.titel, a.text, 
    a.mwst, 
    a.lagerbestand, 
    a.gewicht, 
    c.title AS `cat`, 
    c.id AS `news_id` 
    
    FROM 
    
    `'.$news_tbl&#91;'produkte'&#93;.'` a, 
    `'.$news_tbl&#91;'produk_news'&#93;.'` b, 
    `.'$news_tbl&#91;'news'&#93;.'` c 
    
    WHERE 
    b.producktid=a.id AND 
    b.newsid=c.id 
    
    GROUP BY a.id

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •