30. marts 2006 - 13:15Der er
8 kommentarer og 1 løsning
Vis nyeste med GROUP BY
Prøver at trække tekst ud fra en tabel, "kommentarer", med GROUP BY
$comment = mysql_query("SELECT `artikler`.`id`, LEFT(kommentarer.kommentar, 40) as `text` FROM `artikler`, `kommentarer` WHERE `artikler`.`id` = `kommentarer`.`id_ref` GROUP BY `kommentarer`.`id_ref` ORDER BY `kommentarer`.`dato` DESC LIMIT 0, 5") or die (mysql_error());
Men det er den første kommentar som der vises tekst fra. Hvordan skal den ellers laves?
Hvis du har mysql 5 og du har en kolonne id i kommentar som er auto_increment, så kan du måske lave den i stil med:
SELECT tk.id_ref, LEFT(tk.kommentar, 40) as `text` FROM kommentarer tk INNER JOIN (SELECT artikler.id, MAX(`kommentarer`.`id`) as kid FROM `artikler`, `kommentarer` WHERE `artikler`.`id` = `kommentarer`.`id_ref` GROUP BY artikler.id) as max_ids ON tk.id = max_ids.kid ORDER BY tk.dato DESC LIMIT 0, 5
Den finder id'et for de nyeste kommentarer i din inderste SQL sætning (SELECT artikler.id, MAX(`kommentarer`.`id`) as kid FROM `artikler`, `kommentarer` WHERE `artikler`.`id` = `kommentarer`.`id_ref` GROUP BY artikler.id)
de ID'er bliver JOIN'et på kommentarer tabelen for at kunne trække teskten i kolonnen kommentar ud.
>> Bruger iøvrigt ver. 4.1.11 ??? Ok sql sætnigen bruger sub-selects og jeg mente det første var muligt fra version 5 men det er nok i version 4 eller 4.1 det er kommet med så :)
Spørgsmålet er om du ikke også kan rette det til denne da artikel id'et jo er i kommentarer tabellen kolonne id_ref, du kan evt. prøve:
SELECT tk.id_ref, LEFT(tk.kommentar, 40) as `text` FROM kommentarer tk INNER JOIN (SELECT MAX(`kommentarer`.`id`) as kid FROM `kommentarer` GROUP BY kommentarer.id_ref) as max_ids ON tk.id = max_ids.kid ORDER BY tk.dato DESC LIMIT 0, 5
Jow, din sidste virker også! Takker mange gange!!!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.