[MySQL] Abfrage über 2 Tabellen - Druckversion +- MyBB.de Forum (https://www.mybb.de/forum) +-- Forum: Sonstiges (https://www.mybb.de/forum/forum-1.html) +--- Forum: Programmierung (https://www.mybb.de/forum/forum-32.html) +--- Thema: [MySQL] Abfrage über 2 Tabellen (/thread-9757.html) |
[MySQL] Abfrage über 2 Tabellen - Zwoetzen - 19.06.2008 Hi alle zusammen, langsam dringe ich mit meiner Seite in Gebiete vor, wo mein Wissen allmählich seine Grenzen findet: MySQL-Abfragen ^^ Folgende Situation: Ich habe für meine News Section 2 Tabellen: "news" für die News-Einträge an sich, und "news_comments", in der die Kommentare der User zu den News abgespeichert werden. Ein News-Eintrag hat eine eindeutige nid, die auch bei den Kommentaren mit gespeichert wird. (Irgendwie logisch... Sonst macht das ganze wenig sinn xD) Mein Problem: Da ich mich nicht sonderlich gut mit MySQL und Datenbanken auskenne, weiß ich nicht, wie ich folgende Abfrage formulieren muss: Ich möchte beispielsweise die 5 neuesten Einträge aus "news" auslesen (soweit so gut ^^). Dazu möchte ich aber noch zu jeder der 5 News die Anzahl der zu ihr gehörenden Kommentare mit auslesen. Könnt ihr mir sagen, wie diese Abfrage aussehen muss? (Mir geht es wirklich nur um die Abfrage: Das Verarbeiten des Ergebnisses und die Ausgabe sind kein Problem ) Könnt ihr mir vielleicht auch ein gutes Tutorial zu MySQL empfehlen? (Bisher habe ich bei Abfragen, die komplexer sind als "SELECT * FROM dings WHERE dongs", irgendwie noch nicht richtig durchschaut ^___^) Vielen Dank, Zwoetzen RE: [MySQL] Abfrage über 2 Tabellen - linwinman - 19.06.2008 Hallo Zwoetzen, ich denke, das solltest du mit > "LEFT JOIN" realisieren können, wie z. B. in dieser Query (aus "index.php") PHP-Code: // Get the online users. RE: [MySQL] Abfrage über 2 Tabellen - Zwoetzen - 20.06.2008 Vielen Dank: Left Join war schonmal ein guter Hinweis, habe es soweit erstmal hinbekommen. Habe nun zwar die Anzahl der Comments, allerdings hätte ich auch gerne den Autor des neuesten kommentars dazu: Momentan habe ich: PHP-Code: $query = $db->query(" Das Problem: Von dem entsprechenden Comment-Eintrag bekomme ich immer den ältesten Comment, aber ich hätte gerne die ID und Namen des neuesten Kommentars. Ist das mit einer Abfrage noch mögich? Also dass ich zu jedem der 3 neuesten News-Einträge direkt noch die 3 Spalten des neuesten dazugehörigen Kommentars bekomme? (Ich vermute, dass ich da irgendwas beim ORDER BY ändern muss, aber wie gesagt: Ich kenne mich nicht ganz so gut mit MySQL aus... ^^) RE: [MySQL] Abfrage über 2 Tabellen - linwinman - 20.06.2008 Hallo Zwoetzen, ohne Garantie; aber wenn ich es richtig interpretiere, sortierst du (nur) die 'News' absteigend: PHP-Code: ... ORDER BY n.dateline DESC LIMIT 0,3 PHP-Code: ... ORDER BY n.dateline DESC, c.dateline DESC LIMIT 0,3 Beispiel: eine Sortierung nach PHP-Code: ... ORDER BY t.lastpost DESC, t.views DESC RE: [MySQL] Abfrage über 2 Tabellen - Zwoetzen - 20.06.2008 Hmm nein, das bringt irgendwie nichts. Ich erhalte mit dem zusätzlichen Order-Kriterium exakt die gleichen Ergebnisse: Jeweils den ältesten Kommentar zu den News. Habe aber nun eine andere Lösung finden können, wobei ich nicht weiß, ob es nicht doch besser geht: PHP-Code: $query = $db->query(" Trotzdem Danke für deine Antwort Insofern, vorerst » Erledigt |