2 Spalten aus derselben Tabelle zusammenfügen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 2 Spalten aus derselben Tabelle zusammenfügen

    Hallo,
    ich habe in einer Tabelle 2 Spalten namens "K1" und "K2". Nun möchte ich eine Abfrage formulieren, die bewirkt, dass ich eine Spalte bekomme, in der alle Inhalte der 2 Spalten vorkommen, allerdings nur einmal.
    Ein ganz einfaches Beispiel:

    K1 | K2
    1 | 2
    2 | 3

    soll dann ergeben

    K
    1
    2
    3

    Ich hoffe mir ist zu helfen.
    Danke schon mal.

  • #2
    wozu eigentlich?

    Kommentar


    • #3
      Das ist geheim, aber weil du es bist, verrate ich es dir.
      Mit dem Ergebnis der Abfrage möchte ich eine HTML Auswahlliste mit Elementen füllen.

      Kommentar


      • #4
        UNION ist dein Freund, etwa so

        select ...
        union
        select ...

        schau dir weitere Optionen für UNION an

        Kommentar


        • #5
          Hatte ich schon mal probiert.
          SELECT K1 FROM `output` UNION SELECT K2 FROM `output`;
          So habe ich das eingegeben.
          Und dann kommt ein Fehler:
          #1064 - You have an error in your SQL syntax near 'UNION SELECT K2 FROM `output` LIMIT 0, 30' at line 1

          Wobei mir gerade aufgefallen ist, dass das Komma bei LIMIT 0, 30 rot markiert wird. Die gute phpMyAdmin schreibt also selber was zur Abfrage dazu und baut einen Fehler ein. Wie geil ist das denn?

          Kommentar


          • #6
            1. deine gepostete Abfrage hat nichts mit der Fehlermeldung zu tun, warum zeigst du deine Abfrage nicht?
            2. hast du schon den Syntax von UNION dir angeschaut?

            Kommentar


            • #7
              1. Die gepostete Abfrage hat den Fehler erzeugt, ob du es nun glaubst oder nicht.

              2. Ja, inzwischen auch gründlicher. Jetzt weiß ich, dass die Spalten gleich heißen müssen und das der Datentyp der Spalten varchar ist, was wahrscheinlich Probleme macht.

              Kommentar


              • #8
                Original geschrieben von vollnull
                1. Die gepostete Abfrage hat den Fehler erzeugt, ob du es nun glaubst oder nicht.
                Quark ... in der Abfrage steht nichts von LIMIT...

                Kommentar


                • #9
                  Original geschrieben von vollnull
                  ... Die gute phpMyAdmin schreibt also selber was zur Abfrage dazu ...
                  Alles klar?

                  Kommentar


                  • #10
                    OffTopic:
                    Wie schroff ^^

                    PHP-Code:
                    (SELECT K1 FROM outputUNION (SELECT K2 FROM output); 
                    Funktioniert bei mir ...

                    Auch ohne Klammern:

                    PHP-Code:
                    SELECT K1 AS k
                    FROM output
                    UNION SELECT K2 
                    AS k
                    FROM output
                    ORDER BY k DESC 
                    LIMIT 0 
                    30 
                    Zuletzt geändert von stekoe2000; 04.05.2007, 08:17.
                    Liebe Grüße,
                    SteKoe!

                    PHP Tutorials
                    Peter Kropff | Quakenet | Schattenbaum.net

                    Kommentar


                    • #11
                      phpMyAdmin setzt das Limit um die Ausgabe auf 30 Zeilen zu begrenzen. Den Fehler darfst du aber leider nicht darauf schieben.

                      Kommentar


                      • #12
                        MySQL - Version?
                        carpe noctem

                        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                        Kommentar


                        • #13
                          Original geschrieben von vollnull
                          Das ist geheim, aber weil du es bist, verrate ich es dir.
                          Mit dem Ergebnis der Abfrage möchte ich eine HTML Auswahlliste mit Elementen füllen.
                          und auch da ist mir noch nicht ganz klar, welche art von tabellarisch erfassbaren daten, die du in _zwei spalten_ ablegst, in _einer ergebnisspalte_ ausgegeben werden sollen. mit anderen worten: was sind denn das für daten?

                          Kommentar


                          • #14
                            Also,
                            ich möchte Projekte von mir online stellen und die in Kategorien einordnen. Dann bekommt so ein Projekt in der Spalte K1 meinetwegen "Studium" und in der Spalte K2 z.B. "3D".
                            Wenn ich nun ein neues Projekt eintrage, dann möchte ich eine Auswahlliste haben mit allen Kategorien, die ich schon mal eingetragen habe, damit ich sie nicht nochmals eintippen brauche, sondern bloß auswählen.

                            Und genau das hier:
                            SELECT K1 AS k FROM output UNION SELECT K2 AS k FROM output
                            funktioniert bei mir eben nicht, ich weiß nicht warum.

                            Kommentar


                            • #15
                              ah, verstehe... aber wozu speicherst du sie dann in zwei verschiedenen spalten, wenn es eine und dieselbe datenart ist: kategorien?

                              ein sehr viel sauberer ansatz (stichwort normalisierung) wäre es, zwei zusätzliche tabellen anzulegen:

                              tabelle "kategorien":

                              kategorie_id, kategorie_name:
                              1, 3d
                              2, studium
                              3, kunst


                              tabelle "kategorie_zuordnung":

                              projekt_id, kategorie_id(, kategorie_nummer*):
                              42, 1
                              42, 2

                              * optional, um die trennung zwischen primär- und sekundär-kategorien zu haben, z.b.

                              ich denke, es ist klar, wie die anfragen dann auszusehen haben?

                              Kommentar

                              Lädt...
                              X