Datensätze aus mehreren Tabellen auslesen

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

  • Datensätze aus mehreren Tabellen auslesen

    Hallo.
    Ich habe schon wieder ein Problem. Ich habe 2 Tabellen, die von der Struktur her gleich sind. In diesen Tablellen sind Informationen gespeichert, welche Datum und ein paar Texte enthalten. Die Syntax von meinem Datum-Feld ist : JJJJ-MM-TT.
    Nun muss ich beide Tabellen gleichzeitig, sprich in einem Schwung abfragen und die Ergebnisse über das Datum ordnen. Ich habe es mit JOINT probiert. MySQL hat aber den Fehler gebracht dass das Datum Feld zu "vielfältig" (leichte übersetzung von mir).

    SELECT datum, titelticker
    FROM einsaetze AS A, veranstaltungen AS B
    WHERE TO_DAYS( now( ) ) - TO_DAYS( datum ) <=30
    LIMIT 0 , 30

    MySQL meldet:
    #1052 - Column: 'datum' in field list is ambiguous

    Die Ordungsfunktion ist hier noch nicht drin aber eine andere wichtige, die ich hier schon mal erfragt habe. Müsste da auch noch mit rein.

    Ich brauche keine komplette Lösung, obwohl das natürlich noch besser wäre, ein Gedanken Anstoss schickt schon.


    Grüße

    Florian

  • #2
    ambigous = doppeldeutig

    du hast in beiden tabellen eine spalte die datumheißt

    schreib tabellenname.spaltenname um das zu vermeiden
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      SELECT einsaetze.datum, titelticker
      FROM einsaetze AS A, veranstaltungen AS B
      WHERE TO_DAYS( now( ) ) - TO_DAYS(datum ) <=30

      Wenn ich das so eingebe, bekomme ich diese Fehlermeldung:

      #1109 - Unknown table 'einsaetze' in field list

      Aber die Tabelle gibt es

      Wichtig ist: Er muss die daten "titelticker" von beiden tabellen auslesen.

      Kommentar


      • #4
        Original geschrieben von thewebmaker
        SELECT einsaetze.datum, titelticker
        FROM einsaetze AS A, veranstaltungen AS B
        WHERE TO_DAYS( now( ) ) - TO_DAYS(datum ) <=30

        Wenn ich das so eingebe, bekomme ich diese Fehlermeldung:

        #1109 - Unknown table 'einsaetze' in field list

        Aber die Tabelle gibt es

        Wichtig ist: Er muss die daten "titelticker" von beiden tabellen auslesen.
        wenn Du schon "einsaetze AS A" verwendest, dann mußt Du auch nicht "einsaetze.datum" sondern eben "A.datum" nehmen.

        Oder eben "einsaetze" und dann "einsaetze.datum"
        [Test] MySQL cli Emulator

        Kommentar


        • #5
          SELECT A.datum, A.titelticker
          FROM einsaetze AS A, veranstaltungen AS B
          WHERE TO_DAYS( now( ) ) - TO_DAYS( A.datum ) <=30 LIMIT 0 , 30


          OK. So klappt es fast.

          Er zeigt mit aber nur die titelticker einträge von einsaetze.
          Es müssten aber beide da stehen
          Muss ich verschiedene spaltennamen benutzen ?

          Kommentar


          • #6
            PHP-Code:
            SELECT A.datumA.titelticker
            FROM einsaetze 
            AS Averanstaltungen AS B
            WHERE TO_DAYS
            now( ) ) - TO_DAYSA.datum ) <=30 LIMIT 0 30 
            Du benutzt die Tabelle "veranstaltungen" ja gar nicht?
            Ich habe nicht genau verstanden was Du möchtest, vielleicht sowas :
            PHP-Code:
            SELECT A.datumA.titelticker
            FROM einsaetze 
            AS Averanstaltungen AS B
            WHERE TO_DAYS
            now( ) ) - TO_DAYSA.datum ) <=30 OR TO_DAYSnow( ) ) - TO_DAYSB.datum ) <=30 LIMIT 0 30 
            [Test] MySQL cli Emulator

            Kommentar


            • #7
              naja,

              ein
              JOINT
              ist hier imho unangebracht, selbst ein JOIN wäre ... unnütz.

              wenn du ne 4+ version von mysql hast, nimm UNION ...
              Muss ich verschiedene spaltennamen benutzen ?
              ... mach mal ein select * und schau dir die ergebnisse an ... darum eben keinen join ...

              afaik.
              Zuletzt geändert von derHund; 17.09.2004, 17:20.
              Die Zeit hat ihre Kinder längst gefressen

              Kommentar


              • #8
                Ich glaube ich habe mein nicht richtig geschildert. Sorry:

                Also
                Inhalt der 2 Tabellen

                Tabelle: einsaetze

                datum = 2004.09.22
                titelticker = halloeinsaetze

                Tabelle: veranstaltungen

                datum = 2004.09.25
                titelticker = halloveranstaltungen


                So ich möchte das mit SQL beide Tabelle auf einen Schlag ausliest und mir die Ergebnisse nach Datum sortiert (aufwärts/abwärts egal) und alle die entweder 30 alt oder 30 Tage vorausliegen ausgibt.

                Ungefähr so:

                2004.09.22 | halloeinsätze
                2004.09.25 | halloveranstaltungen

                Ist das überhaupt möglich ?

                Kommentar


                • #9
                  Ist das überhaupt möglich ?
                  ja-ha!
                  mit mysql4+: UNION
                  ohne mysql4: temporäre tabelle erstellen, oder per php ordnen, oder ...
                  Die Zeit hat ihre Kinder längst gefressen

                  Kommentar

                  Lädt...
                  X