sql- 2 tabelle zusamenschmeißen und sortieren

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
metty84
Mitglied
Beiträge: 159
Registriert: 08.03.2007 13:13
Wohnort: Marienberg
Kontaktdaten:

sql- 2 tabelle zusamenschmeißen und sortieren

Beitrag von metty84 »

hallo ich hab grade echt zu kämpfen ich bastel grade die portal box von nem blog um und möchte das in dieser box die 7 blogs drinne stehen deren letzter komentar oder deren erstellung zuletzt war. nur problematisch wirds dadurch das blogs und kommentare in unterschiedlichen tabellen gespeichert werden und das einzige was blogs und komment verbindet ist die blog-id (in der blog tabele heist die "id" in der comments tabelle heist die "comment_ad_id")

die blogs sind in der tabelle ".$tbl_prefixblogs."blogs gespeichert und die coments in der tabelle ".$tbl_prefixblogs."comments ich hab das soweit laufen das es ansich funzt nur werden mir blogs die nen comment haben doppelt ausgegeben.

das sieht dan so aus:
Testblog
Dank an die, di...
Dank an die, di...
Ferrari Enzo ge...
Sagt mir was ih...
Sagt mir was ih...
Wildlive Party ...
solte aber so aussehen
Testblog
Dank an die, di...
Ferrari Enzo ge...
Sagt mir was ih...
Wildlive Party ...
Sagt mir was ih...
Terrorwarnung!!!
kann mir da wer helfen das zu korigieren?


und so sieht derzeit meine sql-abfrage aus:

Code: Alles auswählen

$sqlblogs = "SELECT id, title, time AS timestamp FROM ".$tbl_prefixblogs."blogs
			UNION
			select b.id AS id, b.title, c.comment_time AS timestamp
			FROM ".$tbl_prefixblogs."blogs AS b
			LEFT JOIN ".$tbl_prefixblogs."comments AS c ON b.id = c.comment_ad_id 
			group by id
			order by timestamp desc 
			limit 7"; 
vielen dank schonmal im voraus!

mfg metty
Nichts auf der welt ist so gerecht verteilt wie der Verstand.Denn jederman ist überzeugt das er genug davon habe.
Benutzeravatar
metty84
Mitglied
Beiträge: 159
Registriert: 08.03.2007 13:13
Wohnort: Marienberg
Kontaktdaten:

Beitrag von metty84 »

kay trotz der sehr geringen beteiligung möchte ich denoch euch das ergebniss nicht vorenthalten das ich nach stundenlangem tüfteln gefunden hab und was einwandfrei funzt!

Code: Alles auswählen

SELECT b.id, b.title, max((CASE WHEN c.comment_time > 0 THEN c.comment_time ELSE b.time END)) AS timestamp
			FROM orion_blogs_blogs AS b 
			LEFT OUTER JOIN orion_blogs_comments AS c ON b.id = c.comment_ad_id 
			group by id
			ORDER BY timestamp DESC
			LIMIT 7
mfg metty
Nichts auf der welt ist so gerecht verteilt wie der Verstand.Denn jederman ist überzeugt das er genug davon habe.
Antworten

Zurück zu „Coding & Technik“