[MySQL] SELECT über 3 Tabellen

Macht nix. Dann häng weitere Haubtkategorien an. Das Resultat bleibt dasselbe.
Das ganze wird von der gewählten Unterkategorie aus und baut sich nach oben auf, nicht von der Haubtkategorie nach unten.

Es ist nicht direkt rekursiv. Es ist eine Schleife mit einem Lookup
 
Danke euch beiden, hab jetzt mein Problem folgendermaßen gelöst:

Code:
SELECT news.title, parCat.title, cat.title, cat.parent_category FROM Kategorie_MM AS newsCat LEFT JOIN news ON newsCat.newsid = news.id LEFT JOIN Kategorie AS cat ON newsCat.catID = cat.id LEFT JOIN Kategorie AS parentNewsCat ON parentNewsCat.parentID = newsCat.catID LEFT JOIN Kategorie AS parCat ON cat.parentID = parCat.id WHERE news.id = 1

Trotzdem Danke für eure Hilfe
 
@CikoNo1
Ich empfehle dir die SQLs über mehrere Zeilen zu formatieren. Es wird um einiges lesbarer

@bergonline
Wenn du natürlich eine vollständige Liste haben willst, wirds nur ein wenig komplexer
SQL:
SELECT
		id,
		GROUP_CONCAT(iid ORDER BY rownum DESC SEPARATOR '->') AS path
FROM
	(
	SELECT  
		@rownum := @rownum+1 AS rownum,
		mylist.id AS id,
		IF(@lastl <> mylist.id, @id := mylist.id, @id) AS setVarId,
		@id AS iid,
		@lastl := mylist.id AS setVarLast,
		@id := (SELECT parentID FROM nav  WHERE id = @id) AS parentID
	FROM 
		(SELECT @id := 0, @lastl := 0, @rownum := 0) AS vars,
		(SELECT id FROM nav) AS myloop,
		(SELECT id FROM nav) AS mylist	
	) AS t
WHERE iid IS NOT NULL
GROUP BY id

Ergibt
Code:
id,path
1,1
2,1->2
3,1->2->3
4,1->4
5,1->4->5
6,1->4->5->6
7,1->4->5->6->7
8,1->2->8
9,1->2->8->10->9
10,1->2->8->10
11,11
12,11->12
13,11->13
 
Zuletzt bearbeitet von einem Moderator:
Hey,

das ist jetzt cool :)
Jetzt seh´ ichs
Muss mich unbedingt da mal weiter reinarbeiten.
Mit den "@" und :- habe ich bisher keine/wenig Übung.

Danke :)

mfg

bo
 

Neue Beiträge

Zurück