Announcement

Collapse
No announcement yet.

2 Tabellen untereinander auflisten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 2 Tabellen untereinander auflisten

    Hallo,

    ich möchte 2 verschiedene Tabellen untereinander auflisten.

    Tabelle A
    name - punkte - tag

    Tabelle B
    name - punkte - liga

    daraus möchte ich etwa so eine Tabelle erstellen
    Tabelle C
    name - punkte - tag - liga

    Die Ergebnisse aus A sollen so aufgelistet werden
    "hans" - 2 - 3 - null

    Die aus B so:
    "name" - 3 - null - "cl"


    Ich möchte nichts zusammenführen, sondern nur untereinander auflisten.

    Ich weiß, ich hätte die Tabellen gleich anders gestalten sollen. Aber ich versuche mich zum ersten Mal mit SQL und nun existieren sie eben so.


    Wäre toll wenn mir jemand helfen kann! Bin total ratlos

  • #2
    [highlight=sql]
    SELECT *
    FROM
    (
    SELECT name, punkte, tag, null FROM TabelleA
    UNION ALL
    SELECT name, punkte, null, liga FROM TabelleB
    )
    ORDER BY name
    [/highlight]

    Ich hoffe es funktioniert so mit Deiner SQL Version

    Comment


    • #3
      Hallo,

      das äußere Select kann man auch weglassen und die Abfrage so formulieren:
      [highlight=sql]
      SELECT name, punkte, tag, NULL FROM TabelleA
      UNION ALL
      SELECT name, punkte, NULL, liga FROM TabelleB
      ORDER BY 1;
      [/highlight]

      Gruß Falk
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment


      • #4
        Ja super. Das funktioniert mit UNION ALL.

        Ich habe das nun so gelöst:

        Code:
        SELECT name, punkte, NULL AS pokal FROM liga
        UNION ALL
        SELECT name, punkte, pokal FROM pokale
        ORDER BY punkte DESC
        wenn ich oben nur "NULL" stehen habe, dann heißt die dritte Spalte bei mir auf einmal "NULL". Das wollte ich nicht. Ich habe das nun so wie oben ungeschrieben (NULL AS pokal) und nun heißt die dritte Spalte "pokal" mit den Inhalten "NULL".
        Ist das denn so ok?


        Noch eine Frage. Warum sollte das UNION ALL nicht überall klappen?

        Danke!!

        Comment


        • #5
          Das ist absolut Ok den Spalten Namen zu geben (müssen nur die gleichen sein).

          Manche DBs (vor allem älteren Versionen) unterstützen bestimmte SQL Kommandos nicht. In älteren Versionen von MySQL ist es zum Beispiel auch nicht möglich Subqueries zu formulieren. Da ich nicht genau weiss welche DB welche Kommandos unterstützt, schreibe ich eben immer dazu dass ich mir nicht sicher bin ob die Datenbank das unterstützt

          Comment


          • #6
            Originally posted by fanderlf View Post
            Das ist absolut Ok den Spalten Namen zu geben (müssen nur die gleichen sein).
            Für die Spaltennamen der Ergebnisliste ist einzig und allein die erste Abfrage in der UNION-Verkettung ausschlaggebend. Die Anzahl der Spalten in jeder Teilabfrage muß exakt gleich sein und die Typen der Spalten müssen identisch sein bzw. implizit vom Server konvertiert werden können (wobei wieder der Spaltentyp der ersten Abfrage entscheidend für den Typ der Spalte im Ergebnis ist).
            Die Namen der Spalten spielen dagegen keine Rolle!

            Gruß Falk
            Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

            Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

            Comment

            Working...
            X