Select: Feld angeblich nicht bekannt
Linuchs
- datenbank
0 Tom0 dedlfix0 Fehler umgangen
Linuchs0 Rouven
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
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>
Hallo Tom,
Woher kommt denn Table
evb1
?
aus derselben Datenbank wie die beiden anderen Tabellen.
Linuchs
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
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
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.
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
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
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