MYSQL - Ungewöhnliche Abfrage (2 Tabellen ohne Beziehung joinen)

Topol

Mitglied
Hallo,

ich möchte für meine Webseite im Profil jedes Nutzers all seine Pinnwandeinträge und all seine Forumposts chronologisch angeordnet ausgeben.

Bisher ist es so, dass ich 2 Abfragen aus 2 Tabellen habe und diese nach Datum jeweils in PHP per foreach ausgebe.

Zur Lösung des Problems hätte ich mir einen SELECT gewünscht mit dem ich beide Tabellen nebeneinander anzeigen lassen kann und nach den beiden Datumsspalten sortieren lassen kann.

Prinzip:

Tabelle 1 Pinnwandposts:
pinnwand_ID
pinnwand_Datum
pinnwand_Post

Tabelle 2 Forumposts:
forum_ID
forum_Datum
forum_Post

SELECT sollte dieses Ergebnis bringen:

Datum
pinnwand_ID
pinnwand_Post
forum_ID
forum_Post


Sinn wäre danach per foreach wieder alle reihen durchzugehen und je nachdem ob es ein Forumpost/Pinnwand Eintrag ist die jeweilige Anzeige auszugeben.

Union allein geht nicht, weil die Spalten ja nebeneinander angezeigt werden sollten. Ich vermute stark, dass mir der FULL JOIN weiter hilft. Aber ich weiss dort nicht wie ich die Datumsfelder "mergen" kann. Also eine Kombination von FULL JOIN und UNION. Aber ich bekomme es einfach nicht richtig hin.

edit: Nein, da braucht man auch ne Relation. Ich vermute das es da keine SQL Abfrage gibt ohne Relation?



Hat wer sonst noch eine Idee wie ich dies realisieren könnte mit SQL/PHP/HTML, falls das nicht klappt?

MfG Topo
 
Zuletzt bearbeitet:
Hallo Topol,

also ich hätte jetzt spontan gesagt dass du beide Abfragen jeweils in ein Array zusammenführst und dann mit array_sort nach Datum sortierst, weil über SQL-Abfragen hätte ich keien Ahnung was man da machen kann.
Du hättest dann also SELECT Tabelle 1 und ein SELECT Tabelle 2 und über ne Schleife führst die dann in einem Array zusammen.

Grüße,
Mainz007
 
Hallo,

meinst du das vielleicht so?

SQL:
SELECT * FROM
	(SELECT
		pinnwand_Datum AS Datum,
		pinnwand_ID,
		pinnwand_Post,
		NULL AS forum_ID,
		NULL AS forum_Post
	FROM `Pinnwandposts`

	UNION

	SELECT
		forum_Datum AS Datum,
		NULL,
		NULL,
		forum_ID,
		forum_Post
	FROM `Forumposts`) AS `Result`
ORDER BY `Result`.Datum ASC

Grüße,
Matthias
 

Neue Beiträge

Zurück