kostenloser Webspace werbefrei: lima-city


MySQL UNION Spaltennamen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    atraxoo

    atraxoo hat kostenlosen Webspace.

    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 :wink:
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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.
  4. Autor dieses Themas

    atraxoo

    atraxoo hat kostenlosen Webspace.

    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.
  5. 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?)
  6. Autor dieses Themas

    atraxoo

    atraxoo hat kostenlosen Webspace.

    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

  7. 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.
  8. Autor dieses Themas

    atraxoo

    atraxoo hat kostenlosen Webspace.

    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.
  9. 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.
  10. Autor dieses Themas

    atraxoo

    atraxoo hat kostenlosen Webspace.

    Alles klar, ich schick dir das einmal per PM
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!