Jeg har problemer med at forbinde tre tabeller. Det fungerer godt, når jeg bruger den samme forespørgsel til at forbinde to tabeller (efter at have fjernet LEFT OUTER JOIN C ON B.No = C.No
). Det fungerer dog ikke, når jeg bruger tre tabeller.
Dette er min forespørgsel
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;
Kommentarer
Svar
MS-Access er ret kræsne på, hvordan den vil forbindelserne skal dannes. Tilføj parenteser:
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 ;
Standard SQL-syntaks – og de fleste andre DBMS – behøver ikke kræve parenteser i FROM
klausul, selvom du har tilladelse til at bruge dem for klarhed.
Kommentarer
- Tak for dit svar. Det virkede! Mange tak. Jeg vidste, at min forespørgsel var rigtig, bare gik glip af parentesen. Tak igen. Gud bevare! 🙂
- De fleste andre DBMS har ikke brug for disse (og med rette).
- Ja. Det ' er min første gang ved hjælp af MS Access. Jeg ' er lige så vant til SQL Server!
- @deppz: Ved du, at der er en SQL-Server Express-udgave? (ikke med de fulde funktioner i de højere udgaver, men det kan tjene dine behov).
- Ja, jeg har ' brugt det før. Til denne særlige opgave måtte jeg kun bruge MS Access. Tak for dit forslag.
FROM
klausul inkluderer mere end en sammenkædning.