spyfan: Denkanstoss zu INNER JOIN mit 3 Tabellen

Als erstes möchte ich mich mal dafür bedanken, dass es diese Page gibt. Ihr seid meine Anlaufstelle Nummer1 wenn ich irgendwas zu PHP,SQL oder HTML nachschlagen muss. Diese Page ist eine echte Hilfe. Nun zu meinem Anliegen....

Schmweren Herzens muss ich nun doch einen Thread erstellen und um etwas Hilfe bitten. Ich tuhe mich noch etwas schwer mit verschachtelten INNER JOIN bei mehr als 2 Tabellen.

Folgendes Tabellenkonstrukt liegt vor:

Tab1: cms_content
Spalten: id,CatID,Subject,headline,text,posterID,is_deleted

Tab2: cms_contentcategories
Spalten: CatID,CatName

Tab3: cms_user
Spalten: id,forum_userID,username,email

Aus Tabelle cms_content brauche ich alles (logisch).
Die Spalte CatID dient als Referenz für die Tabelle cms_contentcategories
Die Spalte posterID dient als Referenz für die Tabelle cms_user

Ich schaffe es cms_content mit cms_contentcategories zu verknüpfen:

SELECT cms_content.id,cms_content.text,cms_content.Subject,cms_content.headline,cms_contentcategories.Catname  
FROM `cms_content`  
INNER JOIN `cms_contentcategories` ON (cms_content.CatID=cms_contentcategories.CatID)  
ORDER BY `id` DESC LIMIT 0, 30

Aber wie schaffe ich es nun das er auch noch alles aus cms_user mit ausliest?

Meine bisherigen Verschachtelungsversuche gingen nicht weiter als bis hier:

  
SELECT  
	id,CatID,Subject,headline,text,posterID,autorID,is_deleted,  
	CatName,  
	forum_userID,username,email  
	FROM cms_content INNER JOIN  
	(cms_content INNER JOIN  
	 cms_contentcategories ON cms_content.CatID = cms_contentcategories.CatID)  
	 cms_user ON cms_content.posterID = cms_user.id

Diese Abfrage scheitert jedoch mit dem Ergebniss "Not unique table/alias: 'cms_content'"

Wer also Lust und Zeit hat einem bedarften SQL-User etwas Schützenhilfe zu geben....

  1. SELECT * FROM
    A INNER JOIN B ON B.feldname = A.feldname
    INNER JOIN C ON C.feldname = A.feldname
    INNER JOIN ....

    einfach hintereinander schreiben

    1. omg.... :facepalm: so einfach geht das... ich bin das viel zu kompliziert angegangen. funktioniert einwandfrei

        
      SELECT * FROM  
      	cms_content INNER JOIN cms_contentcategories ON cms_contentcategories.CatID = cms_content.CatID  
      	INNER JOIN cms_user ON cms_user.id = cms_content.posterID  
      
      

      Nur noch auf die notwendigsten Spalten kastrieren um etwas performance zu gewinnen aber das ist ja nun ein leichtes. Ich danke dir!

  2. Hallo,

    Folgendes Tabellenkonstrukt liegt vor:

    Tab1: cms_content
    Spalten: id,CatID,Subject,headline,text,posterID,is_deleted

    Tab2: cms_contentcategories
    Spalten: CatID,CatName

    Tab3: cms_user
    Spalten: id,forum_userID,username,email

    Aus Tabelle cms_content brauche ich alles (logisch).
    Die Spalte CatID dient als Referenz für die Tabelle cms_contentcategories
    Die Spalte posterID dient als Referenz für die Tabelle cms_user

    Der Abschnitt Mehrere Tabellen mit JOIN verknüpfen - unterschiedliche Joinspalten aus SELFHTML aktuell passt auf Dein Problem. Gehe analog vor.

    Freundliche Grüße

    Vinzenz