MySQL UNION Spaltennamen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
abfragen
auswerten
bild
code
date
einzelne zeile
ergebnis
frage
hilfe
http
ordern
problem
rank date
setting
tabelle
trennen
typ
union
url
-
Hey,
Ich wollte euch Fragen ob man irgendwie das: Bild
in das: Bild 'verwandeln' kann.
Die Abfrage schaut momentan folgendermaßen aus:
( SELECT users.uname, users.ID, rank.quoteID, rank.rating, rank.viewed, quotes.quote, rank.date AS sort_date FROM rank LEFT JOIN users ON rank.userID = users.ID LEFT JOIN quotes ON rank.quoteID = quotes.quoteID WHERE quotes.userID = 4 ) UNION ( SELECT follow.follower, follow.followed, follow.viewed, settings.quotesprivat, settings.userID, follow.confirmed, follow.date AS sort_date FROM follow LEFT JOIN settings ON settings.userID = follow.follower WHERE follow.followed = 4 ) ORDER BY sort_date DESC
Es soll also immer vor einem neuem Typ Zeile wieder die Spaltennamen dessen stehen.
Vielen Dank im Voraus -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das geht wohl nicht in einer Abfrage. Ich kenne da keine Lösung dafür.
Worum geht es dir überhaupt? In PhpMyadmin kannst du zwei Abfragen eingeben, die dann direkt nacheinander ausgegührt werden. Soviel ich weiß, bekommst du dann auch von beiden das Ergebnis (als getrennte Tabellen)
Falls du etwas mit Php umsetzen möchtest, dann sind zwei Abfragen vielleicht ebenfalls am sinnvollsten.
Union ist ja zum Zusammenfassen gedacht. Möchtest du eher trennen, dann trenne auch die Abfragen. -
Ja es sind an sich schon 2 getrennte Abfragen.
Das Problem ist nur, dass ich dann Inhalte aus diesen Abfragen rendern möchte die aber zeitlich geordnet sind. Also sie vermischen sich dann sozusagen. -
Ok, da gehen mir Gedanken durch den Kopf, dass du vielleicht deine Datenbankstruktur überdenken solltest.
Ich gehe aber mal davon aus, dass du da eher nichts veränderst. Falls doch, und du Hilfe brauchst, dann schick mal die Struktur deiner Tabellen und erkläre deren Funktion.
Ansonsten musst du wohl mit Php nachhelfen. Du hast zwei Möglichkeiten:
1. Beide Abfragen nacheinander durchführen und die Ergebnisse mit Hilfe von Php noch einmal sortieren.
2. Die Union-Abfrage durchführen und mit Php auswerten, von welchem Typ jede einzelne Zeile ist. (Ist es das, was du wolltest?) -
fuerderer schrieb:
2. Die Union-Abfrage durchführen und mit Php auswerten, von welchem Typ jede einzelne Zeile ist. (Ist es das, was du wolltest?)
Genau, das wollte ich .. da stellt sich die Frage ob es eine Möglichkeit gibt noch eine neue Spalte zu kreieren mit Namen 'Typ' mit Typ1, Typ2 je nachdem halt. Dann würde es mit Php kein Problem sein sie richtig auszuwerten
-
Versuche es mal so:
( SELECT users.uname, users.ID, rank.quoteID, rank.rating, rank.viewed, quotes.quote, rank.date AS sort_date, 1 as typ FROM rank LEFT JOIN users ON rank.userID = users.ID LEFT JOIN quotes ON rank.quoteID = quotes.quoteID WHERE quotes.userID = 4 ) UNION ( SELECT follow.follower, follow.followed, follow.viewed, settings.quotesprivat, settings.userID, follow.confirmed, follow.date AS sort_date, 2 FROM follow LEFT JOIN settings ON settings.userID = follow.follower WHERE follow.followed = 4 ) ORDER BY sort_date DESC
Ich hab das in veränderter Form getestet - sollte eigentlich Funktionieren.
Die Bezeichnungen 'typ', '1' und '2' kannst du bei Bedarf natürlich auch anpassen. -
Vielen Dank, das klappt hervorragend. ;)
Inwiefern meinst du, dass die Tabellenstruktur so nicht passt?
Es sind ja an sich 2 komplett verschiedene abfragen. Ich könnte die Tabellen jetzt auch nicht irgendwie ändern, sodass die Abfragen in einer Abfrage ablaufen können. -
Das war nur so ein Verdacht und kommt natürlich auch auf deinen Einzelfall an. Aber wenn du die Datensätze verschiedener Tabellen zusammen ausgibst, denke ich, dass da eine gewisse Ähnlichkeit herrscht. Und das könnte man vielleicht in einer Tabelle zusammenfassen. Was dann jeder einzelne "Typ" zusätzlich an Daten braucht, ließe sich in jeweils einer weiteren Tabelle speichern.
Nun, ich habe keinen Überblick über die gesamte Datenbank von dir. Und wenn du schon mit Programmieren angefangen hast, wirst du schwerlich wieder alles über den Haufen werfen.
Falls es dich trotzdem interessiert, dann erkläre mal die gesamte Struktur - auch was da jetzt eigentlich gespeichert wird. Ich schau dann mal drüber. -
Alles klar, ich schick dir das einmal per PM
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage