Permalänk
Medlem

[SQL]Hjälp med innerjoin!

Jag behöver hjälp!

Jag har dessa tabeller:

CREATE TABLE Species ( SpeciesID smallint NOT NULL, Name varchar(60) NOT NULL, PRIMARY KEY (SpeciesID) ); CREATE TABLE Table2 ( Blahablaha int NOT NULL, SpeciesID smallint NOT NULL, blabla int NOT NULL, PRIMARY KEY (Blahablaha), FOREIGN KEY (SpeciesID) REFERENCES Species ); CREATE TABLE Results ( ResultsID int NOT NULL, Blahablaha int NOT NULL, Something int NOT NULL, PRIMARY KEY (ResultsID), FOREIGN KEY (Blahablaha) REFERENCES Table2 );

Hur ska innerjoinsatsen se ut? Om jag kör med detta:

SELECT * FROM Table2 INNER JOIN Results ON Results.Blahablaha= Table2.Blahablaha INNER JOIN Species ON Species.SpeciesID = Table2.SpeciesID

... så visas fel resultat...

Permalänk
Hedersmedlem

Re: [SQL]Hjälp med innerjoin!

Tja, den frågan kommer returnera alla kolumner från alla rader i Table2 för vilka det finns en matchande rad i Results för vilka det i sin tur finns matchande rader i Species. Det måste alltså bli "träffar" i hela kedjan för att du ska få något resultat. Är det det du är ute efter?

Permalänk
Medlem

Jo precis - det är det jag är ute efter... Men det funkar inte!

Det jag vill få ut är värden från både table2- och results-tabellerna (det är ju bara att ändra * till vilka värden jag vill få ut).. De resultaten jag vill få ut är resultat som finns länkat från "Table2" o sen i sin tur "Species".. Det ovanstående funkar nästan felfritt- jag får dubletter bara i vissa fall! Så innerjoinsatsen bör ju vara fel tycker jag...

Permalänk
Hedersmedlem

Jaha, då får du selecta dem

SELECT Table2.*, Species.*, Results.* FROM Table2....

Permalänk
Medlem

Re: [SQL]Hjälp med innerjoin!

Citat:

Ursprungligen inskrivet av tjofräs
Jag behöver hjälp!

Antar att du egentligen vill joina table2 med både Results och Species

SELECT * FROM Results INNER JOIN Table2 ON Results.Blahablaha= Table2.Blahablaha INNER JOIN Species ON Species.SpeciesID = Table2.SpeciesID

Jag har inte provat koden men skulle tro att det hjälper

Tittade i Access vad den genererade:

FROM Results INNER JOIN (Species INNER JOIN Tabell2 ON Species.SpeciesID = Tabell2.SpeciesID) ON Results.Blahablaha = Tabell2.Blahablaha;

Visa signatur

/ Assar