Just nu i M3-nätverket
Gå till innehåll

Kopplade undertalbeller?


mitec

Rekommendera Poster

Hejsan alla!

 

Fick fantastisk hjälp här tidigare så jag försöker igen...

 

Har tre tabeller: Kund: [iD] [Kundnamn]

Maskin: [iD] [Maskin] [Kund_ID]

Items: [iD] [item] [Maskin_ID] [Kund_ID]

 

 

Tabellen Kund har relation 1-N med tabellen Maskin (varje kund kan ju ha flera maskiner) Och tabellen Maskin har relation 1-N med Items (varje maskin innehåller många items).

 

Meningen är att man Från tabellen Kund ska kunna ange maskin och items, detta funkar.

 

Kollar jag tabellen maskin skall jag kunna se hos vilken kund varje maskin står, detta funkar.

 

Kollar jag tabellen Items, vill jag se vilken maskin denna sitter i, funkar, och vilken kund denna finns hos, funkar INTE...

 

Hur löser jag sista biten enklast?

 

MVH

 

Mikael

Länk till kommentar
Dela på andra webbplatser

På Items behöver du inte Kund_ID, du har redan en relation till Maskin (genom MaskinID) vilket har Kund_ID, så man går igenom Maskin för att veta vilken kund det är.

 

Select Items.*, Maskin.Maskin as MaskinNamn, Kund.KundNamn

FROM Items

Inner Join Maskin ON Maskin.ID = Items.Maskin_ID

Inner Join Kund ON Maskin.Kund_ID = Kund.ID

Länk till kommentar
Dela på andra webbplatser

Tack Jonas_B, nu kom jag vidare.

 

Ändrade namnen lite på tabellerna för att det skall vara lättare att se...

 

SELECT Items.Item, Maskiner.Maskin, Kunder.Kundnamn

FROM (Kunder INNER JOIN Maskiner ON Kunder.ID=Maskiner.Kund_ID) INNER JOIN Items ON Maskiner.ID=Items.Maskin_ID

WHERE (((Maskiner.ID)=Items.Maskin_ID) And ((Kunder.ID)=Maskiner.Kund_ID));

 

 

Nu har jag inte Kund_ID i Items utan bara Maskin_ID och jag förstår nästan vad jag gjort åxå:)

 

 

 

Finns alltså ingen anledning att ha Kund_ID i Items, utan vi kör alltså en fråga för att få fram infon.

 

Återigen tack, kommer antagligen tillbaka snart igen:)

 

 

 

Ok har labbat vidare lite och insett att det tidigare var overkill.

 

Testade denna nu:

 

SELECT Items.Item, Maskiner.Maskin, Kunder.KundNamn as placering

FROM (Maskiner INNER JOIN Items ON Maskiner.ID = Items.Maskin_ID) Inner join Kunder on Maskiner.Kund_ID= Kunder.ID;

 

 

Provade att skriva in:

 

SELECT Items.Item, Maskiner.Maskin, Kunder.Kundnamn AS Uttryck1

FROM (Items INNER JOIN Maskiner ON Items.Maskin_ID=Maskiner.ID) inner join Kunder on Maskiner.Kund_ID=Kunder.ID ;

 

 

Med samma resultat...

Nu börjar det likna Jonas_B:s förslag, förutom parantesen...

 

/Micke

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...