Seite 1 von 1

Universal SQL Fehler XBTS600

Verfasst: Fr, 19. Mär 2021 18:19
von georg
Hallo,


ich versuche folgende Abfrage mittels Universal SQL auszuführen:

Code: Alles auswählen

select * from content left join linkkateg on content->contentid = linkkateg->kcontentid left join datatag on content->contentid = datatag->contentid where linkkateg->kkateglink = 2 and datatag->metatag = 'Betaphase' INTO ARRAY aSQL
Das führt beim Compilieren zu der Fehlermeldung
error XBTS600: Syntax error, not more tokens but needed, near <and>
Ich verstehe das so, dass weitere Begriffe (Tokens) benötigt, aber nicht gefunden werden. Aber "AND feld = 'bedingung'" sollte doch ausreichen?


Wenn ich die Abfrage - die ja nur ein AND enthält - so kürze, dass die letzte WHERE Bedigung entfällt:

Code: Alles auswählen

select * from content left join linkkateg on content->contentid = linkkateg->kcontentid left join datatag on content->contentid = datatag->contentid where linkkateg->kkateglink = 2 INTO ARRAY aSQL
dann wird die Anweisung anstandslos compiliert und auch ausgeführt.

Laut Dokumentation sollte AND in der WHERE Bedingung zulässig sein. Oder übersehe ich etwas?

Re: Universal SQL Fehler XBTS600

Verfasst: Fr, 19. Mär 2021 18:55
von Werner_Bayern
Servus Georg,

würde Deine Abfrage noch passen, wenn Du where mit and ersetzt?

Re: Universal SQL Fehler XBTS600

Verfasst: Fr, 19. Mär 2021 18:58
von georg
Hallo, Werner -


ich mache hier mal ein paar Zeilenumbrüche, damit die einzelnen Elemente besser lesbar sind:

Code: Alles auswählen

select * from content 
left join linkkateg on content->contentid = linkkateg->kcontentid 
left join datatag on content->contentid = datatag->contentid 
where linkkateg->kkateglink = 2 and datatag->metatag = 'Betaphase' 
INTO ARRAY aSQL
Die Abfrage, welche Datensätze ausgewählt werden sollen, wird ja gerade durch "WHERE" eingeleitet. Wenn ich das durch ein "AND" ersetzen würde, wäre es eine Erweiterung des zweiten LEFT JOIN, was keinen Sinn machen würde.

Wie geschrieben, lasse ich die SQL-Anweisungen ab AND weg, wird es einwandfrei compiliert und lässt sich auch ausführen.

Von daher gehe ich davon aus, dass es bis an diesen Punkt stimmt.

Immer noch verwirrt...