| deluxe89 |
Geschrieben am: So 25.07.2004, 19:18
|
||
|
AyomRank 2 ![]() ![]() ![]() ![]() Gruppe: Member (inaktiv) Beiträge: 6 Mitglied seit: 25.07.2004 |
Hi, ich habe eine Tutorial-Datenbank programmiert. Nun möchte ich eine Statistik mit den Top Postern erstellen.
Das Problem dieses Queries ist, dass er Benutzer mit keinen Tutorials nicht ausliest. Wie würdet ihr das Problem lösen? THX im Voraus! deluxe |
||
![]() |
| Irene irene.ch |
#2 Geschrieben am: So 25.07.2004, 20:06 (+00:48)
|
![]() AyomRank 7 Gruppe: Experten Entwicklung (Mod) Beiträge: 1114 Mitglied seit: 3.05.2004 |
Ich benutz zwar kein MySQL, aber ich denke, so müsste es gehen:
SELECT users.ID, users.name, COUNT(tutorials.ID) AS num_tutorials FROM users, tutorials WHERE (users.ID = tutorials.posterID) or (tutorials.posterID is null) GROUP BY users.ID ORDER BY num_tutorials DESC, users.name ASC; Wenn Du die Verknüpfung zwischen zwei Tabellen machst, werden automatisch alle Records herausgefiltert, die in einer der Tabellen keine Entsprechung haben. Mit dem "is null" werden auch diese Records berücksichtigt. Das Feld num_tutorials hat im Resultat bei den Usern, die keine Tutorials haben, halt einfach null. Griessli Irene -------------------- |
![]() |
| deluxe89 |
#3 Geschrieben am: Mo 26.07.2004, 09:09 (+13:02)
|
|
AyomRank 2 ![]() ![]() ![]() ![]() Gruppe: Member (inaktiv) Beiträge: 6 Mitglied seit: 25.07.2004 |
Leider funktioniert der Query auch nicht. Es werden, wie zuvor, nur Benutzer
mit mindestens einem Tutorial ausgelesen. In PHPMyAdmin steht bei dem posterID Feld: NULL : yes DEFAULT: NULL Müsste also eigentlich klappen... Wisst ihr, woran es liegt? deluxe |
![]() |
| Josh |
#4 Geschrieben am: Mo 26.07.2004, 09:25 (+00:16)
|
||
![]() AyomRank 9 Gruppe: Moderatoren Beiträge: 2142 Mitglied seit: 19.10.2003 |
versuchs mal mit nem join:
wenns nicht klappt, streich unnötige ORDER BY oder GROUP BY raus um zu sehen, obs dann klappt. sonst gib mal n sql-dump, damit ich das lokal testen könnte. gruss j0sh -------------------- Mein letztes Projekt: Atelier-Schmuck.ch
"Das habe ich nie getan und werden es auch nie wieder tun!" :lol: |
||
![]() |
| Josh |
#5 Geschrieben am: Mo 26.07.2004, 09:27 (+00:02)
|
||
![]() AyomRank 9 Gruppe: Moderatoren Beiträge: 2142 Mitglied seit: 19.10.2003 |
nun, ich denke mal, mysql stört es, wenn 0 einträge gefunden werden und ignoriert dies. gib mal sql dump, vielleicht find ichs so raus. -------------------- Mein letztes Projekt: Atelier-Schmuck.ch
"Das habe ich nie getan und werden es auch nie wieder tun!" :lol: |
||
![]() |
| deluxe89 |
#6 Geschrieben am: Mo 26.07.2004, 09:41 (+00:13)
|
|
AyomRank 2 ![]() ![]() ![]() ![]() Gruppe: Member (inaktiv) Beiträge: 6 Mitglied seit: 25.07.2004 |
Hi j0sh,
dein Query liest auch nur das gleiche aus Wegen einem MySQL-Dump... Ist schwierig, da in der Datenbank auch nicht öffentliche Informationen drinstehen. Langsam nervt mich das Prob Danke für eure Antworten! deluxe |
![]() |
| Josh |
#7 Geschrieben am: Mo 26.07.2004, 09:51 (+00:09)
|
![]() AyomRank 9 Gruppe: Moderatoren Beiträge: 2142 Mitglied seit: 19.10.2003 |
dann mach einen dump der struktur und füge ein paar fake-datensätze ein, wenn du mir nicht vertraust.
-------------------- Mein letztes Projekt: Atelier-Schmuck.ch
"Das habe ich nie getan und werden es auch nie wieder tun!" :lol: |
![]() |
| Roger Bobst calac gmbh |
#8 Geschrieben am: Mo 26.07.2004, 10:06 (+00:15)
|
||
|
AyomRank 5 Gruppe: Experten Entwicklung (Mod) Beiträge: 426 Mitglied seit: 15.02.2004 |
Das wird nicht gehen, weil wenn ein User kein Tutorial geschrieben hat, da einfach kein Datensatz in der Tabelle sein wird. Kein Datensatz ist nicht mit NULL auslesbar. Spontan fällt mir hier nur UNION ein. Das Vorgehen wäre dann: mit ersten Select alle auslesen, die was geschrieben haben, das 2. holt alle anderen raus und mittels UNION werden die beiden Resultsets verbunden. Aber das wird erst in neueren mysql Versionen unterstützt. Welche mysql Version hast du denn auf dem Server ? Vielleicht ginge es auch mit JOINS, da gibt es ja verschiedene Typen. Da ich diese aber immer verwechsle Gruss Roger |
||
![]() |
| Josh |
#9 Geschrieben am: Mo 26.07.2004, 10:40 (+00:33)
|
||
![]() AyomRank 9 Gruppe: Moderatoren Beiträge: 2142 Mitglied seit: 19.10.2003 |
genau, schieb beim join mal ein "OUTER" vorne ran, dann probier's noch mit "LEFT" und "RIGHT". könnte funktionieren, könnte dann aber auch ungewollt viele datensätze ausspucken... -------------------- Mein letztes Projekt: Atelier-Schmuck.ch
"Das habe ich nie getan und werden es auch nie wieder tun!" :lol: |
||
![]() |
| deluxe89 |
#10 Geschrieben am: Mo 26.07.2004, 14:10 (+03:29)
|
|
AyomRank 2 ![]() ![]() ![]() ![]() Gruppe: Member (inaktiv) Beiträge: 6 Mitglied seit: 25.07.2004 |
Hi,
mit LEFT JOIN funktioniert es nun. Könnt ihr mir erklären, wie es funktioniert, da die MySQL-Manual nicht sehr viel hergibt. Wäre nett. deluxe |
![]() |
| Roger Bobst calac gmbh |
#11 Geschrieben am: Mo 26.07.2004, 14:23 (+00:13)
|
|
AyomRank 5 Gruppe: Experten Entwicklung (Mod) Beiträge: 426 Mitglied seit: 15.02.2004 |
hier die Beschreibung zu JOIN:
http://www.w3schools.com/sql/sql_join.asp |
![]() |
| deluxe89 |
#12 Geschrieben am: Mo 26.07.2004, 17:06 (+02:43)
|
|
AyomRank 2 ![]() ![]() ![]() ![]() Gruppe: Member (inaktiv) Beiträge: 6 Mitglied seit: 25.07.2004 |
Hat sich nun alles geklärt.
THX deluxe |
![]() |
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/2317
![]() |
![]() ![]() ![]() |
| Themen Titel | Autor | Views | Antworten | Letzte Aktion |
| Lost connection to MySQL | cr4m0 | 28 | 0 | Sa 22.11.2008, 10:51 |
| Kleines Problem mit preg_replace... | BartTheDevil89 | 69 | 3 | Do 20.11.2008, 22:13 |
| MySQL Frage | G.P. | 91 | 2 | Mo 17.11.2008, 15:59 |
| Suche Freelancer: Ajax, XML, PHP, MySQL | omc | 298 | 3 | Mi 12.11.2008, 18:22 |
| Problem bei Mail-Versand | PH | 323 | 14 | Di 11.11.2008, 08:32 |
| Einbinden vonn RSS feeds in Typo3 / MYSQL | e-card | 10799 | 5 | Di 4.11.2008, 18:36 |
| MySql Frage - ID Ändern | EuD | 109 | 2 | Di 4.11.2008, 11:09 |
| mysql query vereinfachen | Big Rob | 154 | 5 | Mo 3.11.2008, 22:40 |
| mysql Dump Städte | pl_90 | 149 | 2 | So 26.10.2008, 01:13 |
| MySQL Befehl | G.P. | 160 | 5 | Fr 24.10.2008, 15:58 |
Anzeige - [Hier werben / Mediadaten]
















