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

  • Hvis du konfigurerer dine sammenføjninger ved hjælp af Design View af Access-forespørgselsdesigneren, tilføjer den parenteser Access kræver, når FROM klausul inkluderer mere end en sammenkædning.

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.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *