Hej, Fårstår inte vad du är ute efter. Men här är ett exempel som kanske är till hjälp: Jag har 2 tabeller. Det är ju snuggare om ägarfältet är ett tal. Samt att ha en relation mellan tabben.IDnr och tabben2.agare. I formulär så använder du dig sedan av en combobox för att ange vilken som ägare en byggnad. Detta efter som idnummer alltid är konstant. Kan ju skapa en relation med referensitegritet och cascade updates. Jag tror oxå databas motorn hanterar en tal till tal relation effektivare och snabbare än en sträng till sträng relation. Har du möjligen lust att förklara följande kommandon: Ska försöka.Besvär med SQL fråga
Håller på med ett register i ASP.
Hur skulle en sånhär fråga se ut i SQL ?
VÄLJ alla FRÅN tabell1 där kolumnen"namnet" = kolumnen"ägare" i tabell2
/MikaelSv: Besvär med SQL fråga
SELECT Orders.*, Customers.CustomerName, Customers.CustomerAddress, Customers.PostalCode, Customers.CustomerRegion, Customers.CustomerCountry, Customers.CustomerPhone, Customers.CustomerFax
FROM Orders LEFT JOIN Customers ON Orders.CustomerID = Customers.CustomerID;Sv: Besvär med SQL fråga
Den ena , vi kan kalla den "tabben" innehåller :
IDnr
Namn
telnr
adress
e_mail
Den andra(tabben2):
beteck
byggar
agare
antlok
Namn från tabben och agare från tabben2 är samma sak. Ett namn(fastighetsägare) kan ha många fastigheter.
Om man söker på ett namn från tabben så ska all information om namnet visas i en tabell på websidan och i en annan alla fastigheter som denne äger.
Om man söker på en fastighets beteckning(beteck) från tabben2 så ska all information om fastigheten visas + information om ägaren.
/MikaelSv: Besvär med SQL fråga
Men nu till svaret på frågan:
Hör är en fråga som visar alla fastighets beteckning från tabben2 och information om fastighets ägare.
SELECT tabben2.*, tabben.*
FROM tabben2 LEFT JOIN tabben ON tabben2.agare = tabben.Namn;
Vet inte om allt är besvarat.Sv: Besvär med SQL fråga
|LEFT JOIN| tabben |ON| tabben2.agare = tabben.Namn;
Alltså LEFT JOIN och ON
Dom har jag inte sett förut
Följde oxå ditt tips om att göra fältet agare till tal och skapade en
en till många relation mellan IDnr och agare.
/MikaelSv: Besvär med SQL fråga
FROM tabben2 |LEFT JOIN| tabben |ON| tabben2.agare = tabben.Namn;
Inebär i vanligt tal. Ta med alla poster från vänster tabell(tabben2) och de poster från tabben vilket uppfyller vilkor(en) tabben2.agare = tabben.Namn.
Vad den gör är att för varje post i tabben2. Ser efter om det finns poster i tabben somm uppfyller vilkoret. Finns det en post visas information i fälten från tabben. Finns det ingen information så är dessa fält blanka. Det är det här som skiljer en INNER JOIN vilket inte dessa poster. Det är detta som skiljer INNER JOIN och LEFT/RIGHT JOIN åt.
Låto ta ett exempel:
Tabell: Users
UserID UserName
1 Adam
2 Bengt
3 Carl
4 Daniel
5 Erik
Tabell: Comments
CommentID CommentUser CommentText
1 1 Post 1
2 2 Post 2
3 2 Post 3
4 3 Post 4
5 3 Post 5
6 3 Post 6
7 4 Post 7
8 4 Post 8
9 4 Post 9
10 4 Post 10
11 (Null) Post 11
SELECT Comments.*, Users.UserName
FROM Comments LEFT JOIN Users ON Comments.CommentUser = Users.UserID;
Ger resultatet:
CommentID CommentUser CommentText UserName
1 1 Post 1 Adam
2 2 Post 2 Bengt
3 2 Post 3 Bengt
4 3 Post 4 Carl
5 3 Post 5 Carl
6 3 Post 6 Carl
7 4 Post 7 Daniel
8 4 Post 8 Daniel
9 4 Post 9 Daniel
10 4 Post 10 Daniel
11 (Null) Post 11 (Null)
SELECT Comments.*, Users.UserName
FROM Comments INNER JOIN Users ON Comments.CommentUser = Users.UserID;
Ger resultatet:
CommentID CommentUser CommentText UserName
1 1 Post 1 Adam
2 2 Post 2 Bengt
3 2 Post 3 Bengt
4 3 Post 4 Carl
5 3 Post 5 Carl
6 3 Post 6 Carl
7 4 Post 7 Daniel
8 4 Post 8 Daniel
9 4 Post 9 Daniel
10 4 Post 10 Daniel
Post 11 har nu mystiskt försvunnit. Detta hoppas jag förklarar Join syntaxet samt skillnaden mellena INNER JOIN och LEFT/RIGHT JOIN...