![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.516
|
Hallo, da bin ich mal wieder Ich hab Probleme mit einer SQL-Abfrage. Da sieht man echt mal wieder, dass ich das Gelernte irgendwie komplett wieder vergessen hab. Ich habe folgende Abfrage Code: SELECT threads.title AS threadtitle, threads.threadid, threads.zahl, forums.title AS forumtitle FROM threads LEFT JOIN forums ON forums.forumid = threads.forumid WHERE threads.forumid IN(1,2) GROUP BY threads.forumid Code: -- -- Tabellenstruktur für Tabelle `threads` -- CREATE TABLE `threads` ( `threadid` int(8) NOT NULL auto_increment, `forumid` int(6) NOT NULL, `title` varchar(255) collate latin1_general_ci NOT NULL, `zahl` int(10) NOT NULL, PRIMARY KEY (`threadid`) ) ENGINE=MyISAM; -- -- Daten für Tabelle `threads` -- INSERT INTO `threads` VALUES (1, 1, 'test titel', 10); INSERT INTO `threads` VALUES (2, 1, 'dumdidum', 5); INSERT INTO `threads` VALUES (3, 2, 'sicherheitsloch', 12); INSERT INTO `threads` VALUES (4, 2, 'ganz schlimmer fehler', 1); -- -- Tabellenstruktur für Tabelle `forums` -- CREATE TABLE `forums` ( `forumid` int(6) NOT NULL auto_increment, `title` varchar(100) collate latin1_general_ci NOT NULL, PRIMARY KEY (`forumid`) ) ENGINE=MyISAM ; -- -- Daten für Tabelle `forums` -- INSERT INTO `forums` VALUES (1, 'allgemeines'); INSERT INTO `forums` VALUES (2, 'security'); Jut, ich erhalte im Test auch das richtige Ergebnis: Code: threadtitle threadid zahl forumtitle -------------------------------------------------- test titel 1 10 allgemeines sicherheitsloch 3 12 security Aber irgendwie scheint mir das doch nicht wirklich korrekt zu sein bzw. nicht fehlerfrei. Würde mich freuen, wenn Ihr da mal korrekturlesen könntet. Der SQL-Noob dankt. Grüße, Ben. // edit by Jann Hendrik: ich konnte es mir nicht verkneifen die Faulheit von Ben zu bearbeiten und habe den code-Block formatiert. Geändert von Jann Hendrik (06.11.2006 um 16:25 Uhr) |
| | |
| | Nach oben #2 |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.208
|
wie wäre es wenn du mittels ORDER BY das ganze nach ID absteigend sortierst ? quasi so: Code: SELECT threads.title AS threadtitle, threads.threadid, threads.zahl, forums.title AS forumtitle FROM threads LEFT JOIN forums ON forums.forumid = threads.forumid WHERE threads.forumid IN(1,2) GROUP BY threads.forumid ORDER BY threads.threadid DESC oder bin ich grad falsch. mfg robo47 |
| | |
| | Nach oben #7 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.516
|
Also ich glaube, dass Ihr mein Problem nicht so ganz verstanden habt. Ich brauche pro Kategorie (Forum) die letzten x Themen. Das ist die Aufgaben-/Problemstellung. Wenn ich jetzt das hier nehme Code: SELECT thread.threadid, thread.title, thread.dateline, forum.forumid FROM forum__thread AS thread LEFT JOIN forum__forum AS forum ON forum.forumid = thread.forumid WHERE thread.forumid IN ( 15, 45, 46, 47, 48, 49, 50, 51 ) GROUP BY thread.forumid ORDER BY thread.dateline DESC LIMIT 0, 3 Ich such und spiel schon die ganze Zeit, aber so wirklich weiter komme ich nicht. Danke für Eure Hilfe. [Nachtrag] Mein Problem liegt darin, dass ich GROUP BY falsch anwende. Weiterhin beschleicht mich das Gefühl, dass das gar nicht geht. ![]() http://www.phpforum.de/forum/phpforu...163025712.html Geändert von Ben (08.11.2006 um 23:41 Uhr) |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |