Kalle_B: MySQL - Kommandos in der Größe limitiert?

Hallöle,

bei Erweiterung eines großen SQL- Kommandos (MySQL 4) kommt überraschend diese Fehlermeldung:
1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Dvortag
,per4.tag_1              Dtag_1
,per4.tag_2              Dtag_2
,kon4.pr' at line 51

zu diesem Kommando:

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

TEST: EINZELBESUCHER + GRUPPEN IN SLOT 1 fuer Ford-Werke GmbH

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SELECT
 1 slot_nr
,kon1.aussteller_id      chef_id
,1586  aus2_id
,IF(kon1.prio_1 IS NULL , 0, kon1.prio_1)
+IF(kon1.prio_2 IS NULL , 0, kon1.prio_2*0.5)
+IF(kon2.prio_1 IS NULL , 0, kon2.prio_1)
+IF(kon2.prio_2 IS NULL , 0, kon2.prio_2*0.5)
+IF(kon3.prio_1 IS NULL , 0, kon3.prio_1)
+IF(kon3.prio_2 IS NULL , 0, kon3.prio_2*0.5)
+IF(kon4.prio_1 IS NULL , 0, kon4.prio_1)
+IF(kon4.prio_2 IS NULL , 0, kon4.prio_2*0.5)
+IF(kon1.prio_3 IS NULL , 0, kon1.prio_3*0.5)  SUMprio_1
,kon1.gruppen_id         gruppen_id

,kon1.besucher_id        Abes_id
,kon2.besucher_id        Bbes_id
,kon3.besucher_id        Cbes_id
,kon4.besucher_id        Dbes_id

,per1.anreise_vortag     Avortag
,per1.tag_1              Atag_1
,per1.tag_2              Atag_2
,kon1.prio_1             Aprio_1
,kon1.prio_2             Aprio_2
,anw1.slot_nr            Aanw_slot
,anw1.partner_id         Aanw_par
,anw1.event_id           Aanw_evt

,per2.anreise_vortag     Bvortag
,per2.tag_1              Btag_1
,per2.tag_2              Btag_2
,kon2.prio_1             Bprio_1
,kon2.prio_2             Bprio_2
,anw2.slot_nr            Banw_slot
,anw2.partner_id         Banw_par
,anw2.event_id           Banw_evt

,per3.anreise_vortag     Cvortag
,per3.tag_1              Ctag_1
,per3.tag_2              Ctag_2
,kon3.prio_1             Cprio_1
,kon3.prio_2             Cprio_2
,anw3.slot_nr            Canw_slot
,anw3.partner_id         Canw_par
,anw3.event_id           Canw_evt

,per4 anreise_vortag     Dvortag
,per4.tag_1              Dtag_1
,per4.tag_2              Dtag_2
,kon4.prio_1             Dprio_1
,kon4.prio_2             Dprio_2
,anw4.slot_nr            Danw_slot
,anw4.partner_id         Danw_par
,anw4.event_id           Danw_evt

FROM      tm_kontakte    as kon1

LEFT JOIN tm_anwesenheit as anw1
ON        anw1.adr_id =kon1.besucher_id
AND       anw1.slot_nr=1
AND       anw1.partner_id=0
AND       anw1.event_id  =0
LEFT JOIN tm_adressen as per1
ON        per1.id=kon1.besucher_id

LEFT JOIN tm_kontakte    as kon2
ON        kon2.aussteller_id = kon1.aussteller_id
AND      (kon2.prio_1 = 1 OR kon2.prio_2 = 1)
AND       kon2.besucher_id  != kon1.besucher_id
AND       kon2.gruppen_id    > 0
AND       kon2.gruppen_id    = kon1.gruppen_id
LEFT JOIN tm_anwesenheit as anw2
ON        anw2.adr_id =kon2.besucher_id
AND       anw2.slot_nr=anw1.slot_nr
AND       anw2.partner_id=0
AND       anw2.event_id  =0
LEFT JOIN tm_adressen as per2
ON        per2.id=kon2.besucher_id

LEFT JOIN tm_kontakte    as kon3
ON        kon3.aussteller_id = kon1.aussteller_id
AND      (kon3.prio_1 = 1 OR kon3.prio_2 = 1)
AND       kon3.besucher_id  != kon1.besucher_id
AND       kon3.besucher_id  != kon2.besucher_id
AND       kon3.gruppen_id    > 0
AND       kon3.gruppen_id    = kon1.gruppen_id
LEFT JOIN tm_anwesenheit as anw3
ON        anw3.adr_id =kon3.besucher_id
AND       anw3.slot_nr=anw1.slot_nr
AND       anw3.partner_id=0
AND       anw3.event_id  =0
LEFT JOIN tm_adressen as per3
ON        per3.id=kon3.besucher_id

LEFT JOIN tm_kontakte    as kon4
ON        kon4.aussteller_id = kon1.aussteller_id
AND      (kon4.prio_1 = 1 OR kon4.prio_2 = 1)
AND       kon4.besucher_id  != kon1.besucher_id
AND       kon4.besucher_id  != kon2.besucher_id
AND       kon4.besucher_id  != kon3.besucher_id
AND       kon4.gruppen_id    > 0
AND       kon4.gruppen_id    = kon1.gruppen_id
LEFT JOIN tm_anwesenheit as anw4
ON        anw4.adr_id =kon4.besucher_id
AND       anw4.slot_nr=anw1.slot_nr
AND       anw4.partner_id=0
AND       anw4.event_id  =0
LEFT JOIN tm_adressen as per4
ON        per4.id=kon4.besucher_id

WHERE     kon1.aussteller_id = 1586
AND       kon1.slot_nr = 0
AND      (kon1.prio_1 = 1 OR kon1.prio_2 = 1)
HAVING    Aanw_slot IS NOT NULL  AND Avortag=1 AND (Bvortag=1 OR Bvortag IS NULL) AND (Cvortag=1 OR Cvortag IS NULL) AND (Dvortag=1 OR Dvortag IS NULL)
ORDER BY  SUMprio_1 DESC, gruppen_id
LIMIT     0,1

Lieben Gruß, Kalle

  1. echo $begrüßung;

    bei Erweiterung eines großen SQL- Kommandos (MySQL 4) kommt überraschend diese Fehlermeldung:
    1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Dvortag

    Bei Syntax-Fehlern ist der Fehler immer vor der angemeckerten Stelle zu suchen.

    ,per4 anreise_vortag     Dvortag

    Nun mach aber mal 'n Punkt! Wie wäre es z.B. zwischen per4 und anreise_vortag?

    echo "$verabschiedung $name";

    1. echo $begrüßung;

      Bei Syntax-Fehlern ist der Fehler immer vor der angemeckerten Stelle zu suchen.

      ,per4 anreise_vortag     Dvortag

      Nun mach aber mal 'n Punkt! Wie wäre es z.B. zwischen per4 und anreise_vortag?

      Ja, manchmal wird man blind für Details. Danke dir.

      Kalle