01.09.2020, Vladimír Klaus, navštíveno 1232x
MS Access
SQL
SQL Server
Pokud se pokoušíte zadat relativně nezávadný SQL dotaz sestavený z několika propojení, můžete být nemile překvapeni chybovou hláškou, která nedává smysl.
SELECT *
FROM Akce
LEFT JOIN CisTypAkce
ON CisTypAkce.ID=Akce.IdTypAkce
LEFT JOIN CisTypStavu
ON CisTypStavu.ID=Akce.IdTypStavu
LEFT JOIN CisTypCharakteruMista
ON CisTypCharakteruMista.ID=Akce.IdTypCharakteruMista
Po chvíli zkoumání zřejmě nenajdete žádný důvod, proč by se to nemělo Accessu líbit. A samozřejmě, že reálně žádný operátor nechybí!
Jenomže MS Access není MS SQL Server 🙄 Zkrátka je nutné dotaz upravit tak, aby jednotlivá spojení byla uzavřená v závorkách a interní systém se v tom mohl vyznat a vyhodnotit.
SELECT *
FROM
(
(
Akce
LEFT JOIN CisTypAkce
ON CisTypAkce.ID=Akce.IdTypAkce
)
LEFT JOIN CisTypStavu
ON CisTypStavu.ID=Akce.IdTypStavu
)
LEFT JOIN CisTypCharakteruMista
ON CisTypCharakteruMista.ID=Akce.IdTypCharakteruMista
Není to tedy žádná katastrofa, ale zbytečně otravné to tedy je...
Zdroje: