Avatar billede spottie Nybegynder
06. februar 2008 - 20:14 Der er 7 kommentarer og
1 løsning

Hjælp til SELECT udtræk fra tabel

Goddag eksperter

Jeg har et problem og håber nogen vil hjælpe med:

Tabel1:
a (string)

Tabel2:
a (string)
b (string)

Jeg har så værdier i tabel1 som også er i tabel2, og til det skal jeg bruge en select sætning til at hive de værdier ud fra tabel2 hvor variabel "a", er lig med det som er i "a" i tabel1.

Der er ingen fremmednøgler eller lign.

Håber nogen kan hjælpe med en select sætning på hvordan kan se ud?

vh spottie
Avatar billede mugs Novice
06. februar 2008 - 20:18 #1
SELECT Tabel1.felt1, Tabel2.felt1
FROM Tabel1 INNER JOIN Tabel2 ON Tabel1.felt1 = Tabel2.felt1
WHERE (((Tabel1.felt1)="a"));
Avatar billede spottie Nybegynder
06. februar 2008 - 21:09 #2
mugs...

tak for svaret, kan du beskrive det lidt mere detaljeret for en person der ikke før har rodet med inner joins?

Hvis man nu skal hente alle rækker fra tabel2 ud fra de samme ting som står i tabel1.a og tabel2.a, således hvis der en sted står abc i tabel1.a og der er flere rækker hvor abc er tabel2.a, kommer alle de rækker så ud? Eller skal den således ændres, jeg forstår ikke helt det der "a" tilsidst?
Avatar billede mugs Novice
06. februar 2008 - 21:25 #3
Der kommer kun de rækker ud, hvor der står a i BÅDE Tabel1 og Tabel2 som du jo selv beder om her:

"variabel "a", er lig med det som er i "a" i tabel1"

"a" er således dit kriterie.

Forskellen på Outer og Inner Joins er groft sagt, at Outer Joins er lavet i relationsvinduet og gælder overalt i db. Inner Joins er lavet i hver enkelt forespørgsel og fungerer kun i denne ene forespøgsel.
Du kan blot kopiere min kode, ændre tabelnavne / feltnavne og åbn en ny forespørgsel > Luk vinduet med tabelvalg > Vis > SQL.visning og kopier koden ind her.
Avatar billede spottie Nybegynder
06. februar 2008 - 21:34 #4
mugs... oki takker.

Det der bare vigtigt for mig er at det også er muligt at slette alle records der kommer i SELECT. Men også det faktum at jeg aldrig ved hvilken værdi der står i felt a i tabellerne, men ved som sagt ikke om det behøver ændres, at der evt. skulle stå "Tabel2.felt1" i stedet for "a" tilsidst så.
Avatar billede mugs Novice
06. februar 2008 - 21:42 #5
Der er ikke noget felt der hedder felt a. Felterne hedder:

Tabel1.felt1, Tabel2.felt1

og du selecter felt1 fra Tabel1 og felt1 fra Tabel2. Indholdet (feltets string) kan være a eller en hvilken som helst anden string.

Stringen a er som sagt indholdet i felt1 og er dit kriterie der begrænser udtrækket fra tabellerne til de poster der indeholder a. Altså udvælg de poster fra Tabel1.felt1 der hvor indholdet i felterne er string:

WHERE (((Tabel1.felt1)="a"));
Avatar billede spottie Nybegynder
07. februar 2008 - 08:25 #6
Oki, har testet og det giver det korrekt udtræk, men jeg får da et andet problem, nemlig at de rækker der kommer ud ikke kan slettes, den siger noget med data read-only. Men det mærkelige er at hvis jeg markere kolonnen og trykker på "Sort (A->Z)" så kan jeg godt slette dem på trods af at de inden det tryk er sorteret.

Hvorledes kan jeg så få lov at slette records uden at skulle trykke på den der sort knap, således dataen i første hug kan slettes?

Har brugt følgende select sætning:

SELECT Tabel1.felt1, Tabel1.felt2
FROM Tabel1 INNER JOIN Tabel2 ON Tabel1.felt1 = Tabel2.felt1
Avatar billede mugs Novice
07. februar 2008 - 09:40 #7
Tak for point.
Jeg mindes aldrig at have oplevet det du beskriver med sortering, og jeg har ingen bud på løsningen. Enter er data read only eller også kan du rette / slette dem

Har mulighed for at sende db som en .zip til:

mugs snabelting mail.dk

så vil jeg se på det lidt senere idag.
Avatar billede fdata Forsker
07. februar 2008 - 13:41 #8
"Enter er data read only eller også kan du rette / slette dem" ... med mindre, der ikke er sat nøgle på de to "felt1" felter. Så kan Access godt blive lidt forvirret i.f.m. sletning.
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