php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.06.2005, 14:49  
db
Neuer Benutzer
 
Registriert seit: 22.09.2004
Beiträge: 19
db
Standard Select und Count auf eine Tabelle

Hallo,


ich komme mal wieder auf keine Lösung!

Im moment bin ich dabei ein Menü für eine Webseite zu erstellen. Dabei habe ich in einer Tabelle die Navigationspunkte sowie die Subnavigationen gespeichert. Navs haben parentid = 0, Subnavs haben dann logischerweise parentid = Nav.id.

Nun benötige ich ein Statement, welches mir alle Navigationen und den Count der zugehörigen Subnavigationen anzeigt.

Code:
SELECT n1.id, n1.name, n1.contentid
FROM navigation n1
WHERE n1.active =1
AND n1.parentid =0
ORDER BY n1.sort

Code:
SELECT count(*)
FROM navigation n2
WHERE active = 1
AND n2.parentid = n1.id
Mit JOIN und SUBSELECT hab ich es nicht hinbekommen.
Aber ihr kriegt das bestimmt hin, oder?

Vielen Dank!
db ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 23.06.2005, 09:38  
Gast
 
Beiträge: n/a
Standard

Zitat:
SELECT n1.id, n1.name, n1.contentid, sum(1) AS sub_nav_count
FROM navigation n1
LEFT JOIN navigation n2 ON n2.parent_id = n1.id
WHERE n1.active =1
AND n1.parentid =0
GROUP BY n1.id
ORDER BY n1.sort
könnte so funktionieren (nicht getestet)
  Mit Zitat antworten
Alt 23.06.2005, 15:59  
db
Neuer Benutzer
 
Registriert seit: 22.09.2004
Beiträge: 19
db
Standard Vielen Dank!

Vielen Dank!


Das sieht schon super aus, allerdings gibt das Statement leider eine 1 aus, wenn KEINE Subnavigation vorhanden ist. Müsste aber 0 sein.

Habt Ihr noch einen Tipp?
db ist offline   Mit Zitat antworten
Alt 23.06.2005, 16:05  
Gast
 
Beiträge: n/a
Standard

Zitat:
SELECT n1.id, n1.name, n1.contentid,
SUM(CASE WHEN n2.id IS NULL THEN 0 ELSE 1) AS sub_nav_count
FROM navigation n1
LEFT JOIN navigation n2 ON n2.parent_id = n1.id
WHERE n1.active =1
AND n1.parentid =0
GROUP BY n1.id
ORDER BY n1.sort
wie immer nicht getestet
  Mit Zitat antworten
Alt 23.06.2005, 16:19  
db
Neuer Benutzer
 
Registriert seit: 22.09.2004
Beiträge: 19
db
Standard Fast

Wow, das ging schnell!

Danke, leider funktioniert das Statement nicht so ganz:

Zitat:
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ') AS sub_nav_count
FROM navigation n1
LEFT JOIN re
Danke!
db ist offline   Mit Zitat antworten
Alt 23.06.2005, 16:20  
Gast
 
Beiträge: n/a
Standard

Zitat:
SELECT n1.id, n1.name, n1.contentid,
SUM(CASE WHEN n2.id IS NULL THEN 0 ELSE 1 END) AS sub_nav_count
FROM navigation n1
LEFT JOIN navigation n2 ON n2.parent_id = n1.id
WHERE n1.active =1
AND n1.parentid =0
GROUP BY n1.id
ORDER BY n1.sort
  Mit Zitat antworten
Alt 23.06.2005, 16:33  
db
Neuer Benutzer
 
Registriert seit: 22.09.2004
Beiträge: 19
db
Standard Danke!

Vielen vielen Dank!

Du hast mir sehr geholfen!
db 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
[Erledigt] Daten aus einer Tabelle mit Form Select weiter geben ch4in PHP Tipps 2008 12 06.06.2008 21:42
SQL - ein select count - wahrscheinlich micbur Datenbanken 4 22.11.2006 23:20
problem beim mehrfachen joinen einer tabelle und count() PHS Datenbanken 3 03.08.2006 16:49
2 joins auf gleiche Tabelle in einem Select frx Datenbanken 4 14.05.2006 21:57
Kombiniertes Problem mit SELECT und COUNT über 2 Tabellen Datenbanken 6 01.07.2005 14:28
select feld mit auswahl aus mysql tabelle PHP Tipps 2005 10 01.06.2005 14:17
SELECT * FROM tabelle WHERE DarkThunder PHP Tipps 2005 10 23.04.2005 21:17
mehrere COUNT() auf selbe Tabelle und »can't reopen table« tapferesschneiderlein Datenbanken 3 04.04.2005 13:51
Crosstable SELECT und COUNT() fantast Datenbanken 2 27.01.2005 15:35
[Erledigt] SELECT * FROM tabelle WHERE id 'zwischen' 10 AND 20 Datenbanken 2 28.11.2004 14:37
Select FROM tabelle ORDER BY id LIMIT 1,10 funkt nicht richt juhuwoorps Datenbanken 6 12.09.2004 14:02
MySQL select in einer Tabelle ausgeben PHP Tipps 2004 2 11.09.2004 18:22
[Erledigt] 2 mal select 1 form PHP-Fortgeschrittene 1 01.09.2004 20:13
[Erledigt] SELECT COUNT - Probleme beim auswerten. Datenbanken 2 09.08.2004 13:55
Möglich? SELECT Wenn ID in fremder Tabelle stimmt... Datenbanken 3 23.07.2004 10:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
select count(*) table order by, select parentid group by order by id, count tabelle, select * from table count, $count = 0; tabelle, select where count(*)<0, count von gleicher tabelle id mit parentid, select und and, select n 1, you have an error in your sql syntax; check the manual that corresponds to your mysql server version for the right syntax to use near \'count(*) from

Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.