zwei tabellen zusammen fügen (Select)

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

  • zwei tabellen zusammen fügen (Select)

    Hallo,

    darauf gibt es sicher eine einfache Antwort aber alles probieren gibt mir immer nur eine Fehlermeldung aus... irgendwie will das grad nicht

    Also hab zwei Tabellen beide will ich einfach zu einer zusammen fügen und ordnen lassen "by timestamp"

    Also ich hab:

    Tabelle1
    id | price | timestamp | X | X | X | X

    Tabelle2
    id | price | timestamp

    jetzt will ich einfach nur das beide zu einer zusammen gefügt werden und diese geordnet per timestamp.

    Ich dachte das es vielleicht mit:
    Code:
    SELECT * FROM Tabelle1, Tabelle2 ORDER by timestamp
    geht... aber das hat nicht funktioniert... dann hab ich es mit Join probiert aber auch da hab ich irgendwie immer Fehler bekommen. Ich kriegs einfach nicht hin

    Ich hoffe mit kann jemand weiter helfen.

    Gruß Nordin

  • #2
    Du musst bei Order By auch eine Tabelle angeben ---> Tabelle1.timestamp bzw. Tabelle2.timestamp

    Seggl-hoch-drei
    Tempim.de - Dein kostenloser Bildhoster
    Tipps und Tricks für Webmaster

    Kommentar


    • #3
      also quasi so:
      Code:
      SELECT * FROM Tabelle1, Tabelle2 ORDER by Tabelle1.timestamp
      aber dann wird doch nur nach timstamp aus tabelle1 (oder tabelle2) geordnet... ich will aber quasi aus zwei tabellen eine machen weil die drei felder (uid, price, timestamp) das selbe format habe...

      weißt wie ich meine? oder versteh ich da was nicht?

      Kommentar


      • #4
        Er kann nicht nach 2 Timestamps GLEICHZEITIG ordnen.
        Aber das wäre noch möglich

        ORDER BY Tabelle1.timestamp, Tabelle2.timestamp

        Wenn jetzt in Tabelle1 2 Timestamps gleich sind, ordnet er zurätlich noch nach den Timestamps aus Tabelle2


        Meinst du das?
        Tempim.de - Dein kostenloser Bildhoster
        Tipps und Tricks für Webmaster

        Kommentar


        • #5
          Ich hab grad festgestellt ich keine Datensätze bekommen wenn ich folgendes mache:
          Code:
          SELECT * FROM tabelle1, tabelle2
          oder
          Code:
          SELECT tabelle1.*, tabelle2.* FROM tabelle1, tabelle2
          Warum? in tabelle1 sind Daten drin... tabelle2 ist leer... aber trotzdem sollten doch eigentlich die Daten aus der tabelle1 angezeigt werden oder? (Ein Fehler kommt nicht)

          Kommentar


          • #6
            Nee, also:
            PHP-Code:
            SELECT FROM tabelle1tabelle2 
            bewirkt einen Cross Join also das "Kreuzprodukt" aus beiden Tabellen. Das heißt, dass jeder Datensatz der einen Tabelle mit jedem anderen Datensatz der anderen Tabelle kombiniert wird. Sind in der ersten Tabelle x Datensätze und inder 2. Tabelle y Datensätze erhälst du als Ergebnis ein x*y großes Resultset. Wenn deine 2. Tabelle (y) also leer ist erhälst du genau x*0=0 Datensätze...so...

            Verbinde Tabellen mit dem SQL Befehl UNION (siehe auch SQL-Docs) und fülle gegebenenfalls die 2.Tabelle mit leeren Werten auf:
            PHP-Code:
            SELECT id,price,timestamp,x1,x2 FROM tabelle1
            UNION
            SELECT id
            ,price,timestamp,'' AS x1'' AS x2 FROM tabelle2 
            so in der Art. Ich weiß grad nicht, ob eine Sortierung über alle Datensätze gehen würde, sonst müsstest du es in einen Subselect fassen. Ausprobieren...studieren....wieder kommen wenns nicht geht...

            Kommentar


            • #7
              ich hab es probiert, klingt alles logisch hab mir auch die manuel zu union angeschaut... und weil es immer ein leeres resultat ergab hab ich gedacht ok machst es erstmal ganz einfach, also so hier:

              PHP-Code:
              (SELECT cb_price FROM tabelle1UNION (SELECT price FROM tabelle2); 
              ergebniss wieder null hab aber in jeder tabelle jetzt daten drin...

              was mache ich falsch?

              Kommentar


              • #8
                Das ganze sieht mir recht bescheuert konzipiert aus, und das auslesen wird entsprechend frickelig. Warum erklärst du nicht einfach, was diese Tabellen genau beinhaten und überdenkst dein Konzept?
                [FONT="Helvetica"]twitter.com/unset[/FONT]

                Shitstorm Podcast – Wöchentliches Auskotzen

                Kommentar


                • #9
                  lol...

                  ich habe ein tabelle die nur mit daten (preis, userid, timestamp....) von clickandbuy per schnittstelle gefüttert wird in dieser tabelle will ich nicht anderes einfügen und auch nicht ändern... jetzt soll aber eine zweite tabelle per "hand" gefüttert werden (ebenfalls mit preis, userid, timestamp....) aber diese daten kommen nicht über die schnittstelle... es muss doch jetzt eine möglichkeit geben aus diesen zwei identischen tabellen eine temporäre tabelle zu machen?!

                  Also einen grund hats das ganze schon sonst hätte ich es ja nicht so gemacht... sondern einfach alles in diese eine tabelle fließen lassen... das will ich aber nicht, da ich die daten die über die schnittstelle kommen nicht mir den daten die per hand eingegeben werde vermischen wollte.

                  ok ich könnte in der tabelle der schnittstelle noch ein feld X einfügen und dort kennzeichnen ob der eintrag über die schnittstelle kommt oder nicht. aber ganau das wollte ich ja nicht.

                  Kommentar


                  • #10
                    Original geschrieben von Nordin
                    ergebniss wieder null hab aber in jeder tabelle jetzt daten drin...
                    Bei der von dir genannten Abfrage erhälst du mit Sicherheit ein Resultat, wenn auch nur in einer Tabelle ein einziger Preis drin ist. Also liegt das Problem sicher wo anders.
                    Zeige mal den Aufbau deiner Tabellen (SHOW CREATE TABLE <tabelle>) und einen Auszug der darin enthaltenen Daten.
                    Gruss
                    H2O

                    Kommentar

                    Lädt...
                    X