Avatar billede mal Nybegynder
11. december 2004 - 10:41 Der er 9 kommentarer og
1 løsning

Lave forespørgsel hvor man kan ændre alle felter

Jeg har lavet en database bestående af 3 tabeller:

Tabel 1:

Indeholder felt

A
B
C


Tabel 2:

Indeholder

B
D
E

Tabel 3:

Indeholder

E
F
G
H

Sammenhæng:

Tabel 1 hænger sammen med tabel 2 via B, Det er "en til mange" relation ... der kan være 100 B i Tabel 1, men kun 1 B i Tabel 2.

Tabel 2 hænger sammen med Tabel 3 i "en til en" relation, der kan max være en E i Tabel 2 og max være en E i Tabel 3.

Mit problem er at jeg kan forespørgel hvor man kan ændre i alle felterne på alle felterne i tabel 1, tabel 2 og tabel 3 på en gang.

Jeg har lavet tabellerne og relationerne ... når jeg går i gang med at lave en forespørgsel og vil ændre.

Jeg er ligeglad hvordan problemet løses ... hvis der er en der gider lave en access database hvor det virker er det fint ... hvis man kan fortælle hvor der ligger en sådan database er det fint, hvis man forklarer mig hvordan jeg laver det er det fint.
11. december 2004 - 10:47 #1
Hvad mener du med, at du vil "ændre"?
Vil du opdatere felterne med nye værdier? Hvilke værdier?
Eller vil du ændre selve forespørgslen?
11. december 2004 - 10:59 #2
Hvis du definere dine relationer, så der er kaskadevis opdatering imellem, så kan du bare opdatere med f.eks. denne forespørgsel, som sætter forskellige værdier i forskellige felter:

UPDATE Tabel3 INNER JOIN (Tabel2 INNER JOIN Tabel1 ON Tabel2.B = Tabel1.B) ON Tabel3.E = Tabel2.E SET Tabel2.B = 2, Tabel2.D = 2, Tabel1.C = 4, Tabel1.A = 7, Tabel3.E = 6, Tabel3.G = 7;
Avatar billede mal Nybegynder
11. december 2004 - 11:36 #3
Øhhh

Den ser sådan her ud nu:

SELECT Tabel1.[A], Tabel1.[B], [Tabel2].[B], [Tabel2].[C], [Tabel2].[E]
FROM [Tabel2] RIGHT JOIN Tabel2 ON [Tabel2].[B] = Tabel1.[B];

hvordan skal den se ud
Avatar billede mal Nybegynder
11. december 2004 - 11:43 #4
Det jeg mener med update er at jeg vil kunne skrive i alle dele af databasen samtidig via en forespørgsel
Avatar billede mal Nybegynder
11. december 2004 - 11:58 #5
altså min tabel 3 er realt set ligegyldig ... jeg kan nøjes med 2
11. december 2004 - 12:34 #6
Din egen syntaks duer ikke, da der ikke er nogen [C] i tabel2.

Men denne skulle virke:
SELECT Tabel1.A, Tabel1.B, Tabel2.B, Tabel2.D, Tabel2.E
FROM Tabel2 INNER JOIN Tabel1 ON Tabel2.B = Tabel1.B;
11. december 2004 - 12:45 #7
Husk at der skal være kaskadevis opdatering på relationen, hvis du skal kunne opdaterer alle felter.
Avatar billede mal Nybegynder
11. december 2004 - 20:30 #8
Jeg kikker lige på det i morgen ...
Avatar billede mal Nybegynder
12. december 2004 - 07:59 #9
Mange Tak for hjælpen.

Beklager at jeg ikke fik kikket på det i går !

Den eneste fejl der er er at den right join i stedet for inner join.
12. december 2004 - 10:27 #10
ja, det er rigtigt. Men det er den eneste måde hvorpå du kan få lov at ændre alle felter! Det ligger i Outer Joins' (left og right) natur at man ikke kan redigere posrter på "mange"-siden :o(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester