php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.06.2011, 14:52  
Neuer Benutzer
 
Registriert seit: 17.06.2011
Beiträge: 2
PHP-Kenntnisse:
Fortgeschritten
stiller befindet sich auf einem aufstrebenden Ast
Standard Join-Frage

Hallo

Folgende Ausgangslage:

Tabelle rubriken:
rID //autom. ID
rParentID //root = 0 sonst rID der Eltern
rName //Name

Tabelle Artikel
aID //autom. ID
aRID // ID aus tab. rubriken
aTitel

Suche nun ein SQL-Befehl welcher mir alle Root-Rubriknamen ausgibt welche mindestens einen Artikel gibt. Allerdings auch solche, die selber keinen Artikel haben, es jedoch Artikel von Parent-Rubriken mindestens einen gibt.

Mein Versuch geht leider nicht:
SELECT r.* FROM rubriken as r, rubriken as r2, artikel as a WHERE r2.rParentID = r.rID AND a.aRID = r.rID OR r.rParentID = '0' AND a.aRID = r.rID

Kann mir jemand helfen woran das liegt?

Danke vielmals.

Gruss
Thomas
stiller ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 17.06.2011, 14:54  
Erfahrener Benutzer
 
Benutzerbild von wolf29
 
Registriert seit: 17.03.2010
Beiträge: 1.833
PHP-Kenntnisse:
Fortgeschritten
wolf29 wird schon bald berühmt werdenwolf29 wird schon bald berühmt werden
Standard

Mach'S doch mit nem SubSelect?!

mfg Wolf29
__________________
while (!asleep()) sheep++;

Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
wolf29 ist offline   Mit Zitat antworten
Alt 17.06.2011, 15:22  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
Mein Versuch geht leider nicht:
SELECT r.* FROM rubriken as r, rubriken as r2, artikel as a WHERE r2.rParentID = r.rID AND a.aRID = r.rID OR r.rParentID = '0' AND a.aRID = r.rID

Kann mir jemand helfen woran das liegt?
Das könnte schon an fehlender Klammerung liegen (AND/OR Mix)... wobei die Antwort auf die Frage, woran es liegt, bei einer "geht nicht" Problembeschreibung auch in jeder anderen Richtung liegen könnte...
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 17.06.2011, 15:49  
Erfahrener Benutzer
 
Registriert seit: 19.06.2009
Beiträge: 837
PHP-Kenntnisse:
Fortgeschritten
Jens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nett
Standard

Das geht bei einem Vaterzeiger-Datenbaum nur mit sehr viel Aufstand. Endweder bildest Du die maximale Baumtiefe in Self-Joins ab oder Du nimmst die Root-ID Deines Subtrees in die Artikel-Tabelle mit auf.

Wobei halt - es gibt noch eine dritte Variante, die würd ich allerdings nicht empfehlen: Hier lässt sich das Beispiel 2 so modifizieren, dass es zu einer jeden Rubrik die Rootknoten-ID zurück liefert. Das lässt sich natürlich als Subselect in Deine Query integrieren und dann mit der Artikel-Tabelle joinen.

Das beste währe wohl, wenn Du Deine Baumstruktur mit einem der anderen Modelle abbildest. Sowohl mit Nested Set, als auch mit einem Pfadmodell ginge Dein Anwendungsfall einfacher zu lösen.

Gruß Jens
Jens Clasen ist offline   Mit Zitat antworten
Alt 17.06.2011, 16:30  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
nur mit sehr viel Aufstand.
Duden!
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 17.06.2011, 16:33  
Erfahrener Benutzer
 
Registriert seit: 19.06.2009
Beiträge: 837
PHP-Kenntnisse:
Fortgeschritten
Jens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nett
Standard

Stehen da seit neuestem auch Redensarten drin?

Gruß Jens
Jens Clasen ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit Abfrage - join, inner join, distinct? Gachet01 Datenbanken 2 27.01.2011 06:49
Bräuchte hilfe bei schleifenproblem innerhalb SQL anweisung Kronic73 Datenbanken 8 01.03.2009 01:10
[Erledigt] praktisches Datenbank-"design" für JOIN balthazar Datenbanken 2 08.01.2009 22:48
Frage zu Join xiled PHP Tipps 2009 1 05.01.2009 10:37
[Erledigt] mit einer CHECKBOX feld nach mehreren wörtern durchsuchen taurus Datenbanken 20 01.12.2008 10:49
Select / Left Join Performance mark007q Datenbanken 4 17.11.2008 15:14
[Erledigt] Left join und inner join stefanjann Datenbanken 7 16.10.2008 15:45
Mehrfach Join lazydog Datenbanken 2 08.05.2008 16:09
Frage zu meinem JOIN Statement Benjamin Such Datenbanken 4 12.04.2008 13:20
JOIN Problem pPanther Datenbanken 7 06.03.2008 17:26
[gelöst]LEFT JOIN, DINSTINCT und trotzdem doppelte?!?! stefanjann Datenbanken 10 06.02.2008 11:49
JOIN / LEFT JOIN und Co prinzli Datenbanken 12 05.11.2007 22:15
Frage wegen Join Verknüpfung Bruno Datenbanken 8 08.12.2006 11:17
SQL-Frage zum JOIN micbur Datenbanken 2 16.11.2006 23:46
[Erledigt] kleine inner join frage... PHP-Fortgeschrittene 3 02.11.2004 22:02


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:17 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum