Linuchs: Select: Feld angeblich nicht bekannt

Hallo,

eine funktionierende SQL-Anweisung möchte ich mit LEFT JOIN ergänzen und bekomme diesen Fehler:

1054: Unknown column 'evt1.id' in 'on clause'

SELECT  
 evt1.id           event_id  
,evt1.kurzname  
,evt1.lfd_nr  
,evt1.von_slot_nr  
,evt1.bis_slot_nr  
,evt1.name         event_name  
,evt1.art  
,slt1.uhr_von  
,COUNT(evb1.gebuchte_event_id) anzahl_teilnehmer  
FROM      tm_events AS evt1  
         ,tm_slots AS slt1  
LEFT JOIN tm_eventbuchungen AS evb1  
ON       (evb1.gebuchte_event_id = evt1.id)  
WHERE     evt1.owner_id = 13  
AND       slt1.owner_id = evt1.owner_id  
AND       slt1.nr = evt1.von_slot_nr  
#AND evt1.lfd_nr=1  
#ORDER BY  evt1.kurzname, evt1.lfd_nr  
GROUP BY  evt1.kurzname, evt1.lfd_nr

evt1.id ist als erstes selektiertes Feld bekannt.

Linuchs

  1. Hello,

    eine funktionierende SQL-Anweisung möchte ich mit LEFT JOIN ergänzen und bekomme diesen Fehler:

    1054: Unknown column 'evt1.id' in 'on clause'

    SELECT

    evt1.id           event_id
    ,evt1.kurzname
    ,evt1.lfd_nr
    ,evt1.von_slot_nr
    ,evt1.bis_slot_nr
    ,evt1.name         event_name
    ,evt1.art
    ,slt1.uhr_von


    ,COUNT(evb1.gebuchte_event_id) anzahl_teilnehmer



    FROM      tm_events AS evt1
             ,tm_slots AS slt1


    LEFT JOIN tm_eventbuchungen AS evb1


    ON       (evb1.gebuchte_event_id = evt1.id)


    WHERE     evt1.owner_id = 13
    AND       slt1.owner_id = evt1.owner_id
    AND       slt1.nr = evt1.von_slot_nr
    #AND evt1.lfd_nr=1
    #ORDER BY  evt1.kurzname, evt1.lfd_nr
    GROUP BY  evt1.kurzname, evt1.lfd_nr

    
    >   
    > evt1.id ist als erstes selektiertes Feld bekannt.  
      
      
    Woher kommt denn Table `evb1`?  
      
      
      
      
    Liebe Grüße aus dem schönen Oberharz  
      
      
    Tom vom Berg  
    ![](http://selfhtml.bitworks.de/Virencheck.gif)  
      
    
    -- 
     ☻\_  
    /▌  
    / \ Nur selber lernen macht schlau  
    <http://bikers-lodge.com>
    
    1. Hallo Tom,

      Woher kommt denn Table evb1?

      aus derselben Datenbank wie die beiden anderen Tabellen.

      Linuchs

      1. Hello Linuchs,

        Woher kommt denn Table evb1?

        aus derselben Datenbank wie die beiden anderen Tabellen.

        Habe ich sie in der From-Klausel übersehen?

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bikers-lodge.com
        1. Hello,

          Hello Linuchs,

          Woher kommt denn Table evb1?

          aus derselben Datenbank wie die beiden anderen Tabellen.

          Habe ich sie in der From-Klausel übersehen?

          Sorry, das war ja der Join:

          LEFT JOIN tm_eventbuchungen AS evb1

          DAS hatte ich eben übersehen.

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          --
           ☻_
          /▌
          / \ Nur selber lernen macht schlau
          http://bikers-lodge.com
  2. Tach!

    1054: Unknown column 'evt1.id' in 'on clause'
    evt1.id ist als erstes selektiertes Feld bekannt.

    Was im SELECT steht (Aliase zum Beispiel), ist für FROM und WHERE nicht relevant. Dort müssen existierende Feldnamen oder Formeln mit Feldnamen stehen. Was den Fehler verursacht, sehe ich nicht. Die Query scheint in Ordnung zu sein. Ich kenne aber deine Tabellen nicht.

    dedlfix.

  3. danke für eure Bemühungen.

    Konnte den Fehler nicht finden, aber umgehen ohne JOIN:

    SELECT  
     evt1.id           event_id  
    ,evt1.kurzname  
    ,evt1.lfd_nr  
    ,evt1.von_slot_nr  
    ,evt1.bis_slot_nr  
    ,evt1.name         event_name  
    ,evt1.art  
    ,evt1.max_teilnehmer  
    ,slt1.uhr_von  
    ,COUNT(evb1.gebuchte_event_id) gebu_teilnehmer  
    FROM      tm_events AS evt1  
             ,tm_slots AS slt1  
      
    # Anzahl gebuchte Teilnehmer zum Event  
             ,tm_eventbuchungen AS evb1  
      
    WHERE     evt1.owner_id = 13  
    AND       slt1.owner_id = evt1.owner_id  
    AND       slt1.nr = evt1.von_slot_nr  
    AND       evb1.gebuchte_event_id = evt1.id  
    #AND evt1.lfd_nr=1  
    #ORDER BY  evt1.kurzname, evt1.lfd_nr  
    GROUP BY  evt1.kurzname, evt1.lfd_nr
    

    Linuchs

  4. Hello,

    FROM      tm_events AS evt1
             ,tm_slots AS slt1
    LEFT JOIN tm_eventbuchungen AS evb1
    ON       (evb1.gebuchte_event_id = evt1.id)

    Du setzt hier einen "seltsamen" Mix aus explizitem und impliziten JOIN ein. Mir ist auf Anhieb nicht klar, wie das Soll-Verhalten der Datenbank ist. Ich mutmaße: der LEFT JOIN bindet stärker als das ",", damit sind im ON-Teil nur slt1 und evb1 bekannt, nicht aber evt1.

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Wenn du die Nadel im Heuhaufen nicht findest, zünde den Heuhaufen an.
    1. Hallo Rouven,

      FROM      tm_events AS evt1
               ,tm_slots AS slt1
      LEFT JOIN tm_eventbuchungen AS evb1
      ON       (evb1.gebuchte_event_id = evt1.id)

      Du setzt hier einen "seltsamen" Mix aus explizitem und impliziten JOIN ein. Mir ist auf Anhieb nicht klar, wie das Soll-Verhalten der Datenbank ist. Ich mutmaße: der LEFT JOIN bindet stärker als das ",", damit sind im ON-Teil nur slt1 und evb1 bekannt, nicht aber evt1.

      Danke für den Hinweis. Wenn ich klammere, ist die Fehlermeldung verschwunden:

        
      FROM     (tm_events AS evt1  
               ,tm_slots AS slt1)  
      LEFT JOIN tm_eventbuchungen AS evb1  
      ON        evb1.gebuchte_event_id = evt1.id  
      
      

      Also bezieht sich ein JOIN nur auf die unmittelbar vorher genannte Tabelle?

      Linuchs