Mám problémy s připojením tří tabulek. Funguje to dobře, když pro připojení dvou tabulek použiji stejný dotaz (po odebrání LEFT OUTER JOIN C ON B.No = C.No
). Při použití tří tabulek to však nefunguje.
Toto je můj dotaz
SELECT A.Name, B.Quantity, C.Quantity FROM A LEFT OUTER JOIN B ON A.ID = B.ID LEFT OUTER JOIN C ON B.No = C.No;
Komentáře
odpověď
MS-Access je docela vybíravý v tom, jak chce spojení, která mají být vytvořena. Přidejte závorky:
SELECT A.Name, B.Quantity, C.Quantity FROM ( A LEFT OUTER JOIN B ON A.ID = B.ID ) LEFT OUTER JOIN C ON B.No = C.No ;
Standardní syntaxe SQL – a většina ostatních systémů DBMS – nevyžadují závorky v FROM
klauzule, přestože je pro přehlednost povoleno je používat.
Komentáře
- Děkujeme za odpověď. Fungovalo to! Děkuji mnohokrát. Věděl jsem, že můj dotaz je správný, právě mi chyběla závorka. Ještě jednou děkuji. Bůh žehnej! 🙂
- Většina ostatních systémů DBMS tyto nepotřebuje (a je to oprávněně).
- Ano. Je to ' poprvé, co používám MS Access. Jsem ' tak zvyklý na SQL Server!
- @deppz: Víte, že existuje edice SQL-Server Express? (ne s plnými funkcemi vyšších edic, ale může to sloužit vašim potřebám).
- Ano, už jsem to ' použil. Pro tento konkrétní úkol jsem musel použít pouze MS Access. Děkujeme za váš návrh.
FROM
obsahuje více než jedno připojení.