Kalle_B: Bitte mal SQL- Kommando ansehen

Hallöle,

habe hier den Fehler
1054: Unknown column 'kon1.owner_id' in 'on clause'

Das Feld owner_id ist in Tabelle tm_kontakte enthalten. Hier das "falsche" SQL- Kommando:

SELECT
 anw1.slot_nr           slot_nr
,slt1.uhr_von           uhr_von
,kon1.gruppen_id        bes_gruppen_id
,kon2.prio_1            prio_1
,kon2.prio_2            prio_2
,kon2.prio_3            prio_3
,kon2.besucher_id       bes_id
,anw1.partner_id        bes_par_id
,anw1.event_id          bes_evt_id
,per1.bezeichnung       bes_par_bezeichnung
,evt1.name              bes_evt_bezeichnung

FROM      tm_kontakte as kon1
         ,tm_kontakte as kon2
LEFT JOIN tm_anwesenheit as anw1
ON        anw1.adr_id=kon2.besucher_id
LEFT JOIN tm_slots as slt1
ON        slt1.owner_id=kon1.owner_id AND slt1.nr=anw1.slot_nr
LEFT JOIN tm_adressen as per1
ON        per1.id=anw1.partner_id
LEFT JOIN tm_events as evt1
ON        evt1.id=anw1.event_id

WHERE     kon1.besucher_id=1828 AND kon1.aussteller_id=1533
AND      (   (kon1.gruppen_id>0 AND kon2.gruppen_id=kon1.gruppen_id   AND kon2.aussteller_id=kon1.aussteller_id)
          OR (kon1.gruppen_id=0 AND kon2.besucher_id=kon1.besucher_id AND kon2.aussteller_id=kon1.aussteller_id))

ORDER BY  anw1.slot_nr, kon2.besucher_id

Lieben Gruß, Kalle

  1. 1054: Unknown column 'kon1.owner_id' in 'on clause'

    Eventuell hilft dir http://dev.mysql.com/doc/refman/5.0/en/join.html (unter "Join Processing Changes in MySQL 5.0.12"), dort die Ausführungen zu 'comma operator' und JOIN sowie folgende.

    Wenn ich das richtig sehe, sollte eine Klammer um die Tabellennamen wie folgt helfen:

    FROM (tm_kontakte as kon1, tm_kontakte as kon2)

    Ansonsten: Welche MySQL-Version?

    Siechfred

    --
    Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.
    1. Ansonsten: Welche MySQL-Version?

      5.0.27

      Habe die Klammern gesetzt. Jetzt wird die Seite nicht geladen. Terions hat seit Wochen irre Probleme.

      Kalle

    2. Wenn ich das richtig sehe, sollte eine Klammer um die Tabellennamen wie folgt helfen:

      FROM (tm_kontakte as kon1, tm_kontakte as kon2)

      Tatsächlich. Klammer drum, kein Fehler. Klammer wieder weg, Fehler.

      Wenn das meine Freundin wüsste, dass man mit Klammern zum Erfolg kommt ...

      Kalle

      1. Hallo Kalle,

        Wenn ich das richtig sehe, sollte eine Klammer um die Tabellennamen wie folgt helfen:

        FROM (tm_kontakte as kon1, tm_kontakte as kon2)

        Tatsächlich. Klammer drum, kein Fehler. Klammer wieder weg, Fehler.

        Du solltest _dringend_ überprüfen, ob die Resultate der Abfragen gleich bleiben.
        Die Änderungen in MySQL 5.0.12 hatten auch darauf Auswirkungen.

        Die Ergebnisse vorher konnten bei bestimmten OUTER JOINs enorm vom (von mir) erwarteten Ergebnis abweichen. Das von mir erwartete Ergebnis war übrigens das, was neuere MySQL-Versionen liefern - und andere DBMS wie DB2, Oracle oder MS SQL-Server schon seit eh' und je zurückgaben.

        Freundliche Grüße

        Vinzenz

  2. Hallo,

    probier mal so etwas in dieser Art:

    ...
    from servers s, packages p
    where s.id = p.server_id
    ...

    Gruss

    Bernd