Vinnaren i pepparkakshustävlingen!
2009-12-08, 21:38
  #1
Medlem
Hey!

Jag har två st tabeller: Bilar och Anställda och jag skulle vilja fixa en SQL-sats som gör att man får fram förnamn och efternamn på den/dom personer som har hyrt två eller fler bilar.
Tabellerna ser ut ngt såhär:

Anställda
id Förnamn Efternamn
1 Darth Vader
2 Kalle Anka

Bilar
id regnr bilmärke årsmodell anställda.id
1 ABC 123 SAAB 98 1
2 BGF 765 VOLVO 06 1
3 BHS 134 Skoda 97 2

Satsens svar ska då bli att man får fram Darth, Vader, eftersom han har hyrt SAAB'n och Volvon.
Jag har försökt gjort ngt följande:
SELECT Förnamn, Efternamn FROM `Anställda` INNER JOIN `Bilar` ON Bilar.anställdaid = Anställda.id WHERE Bilar.anställdaid >= 2;

vilket blir totalt fel i mitt WHERE-kommando.

Ngn som vet om det här går att lösa? Känns som att det borde gå...
Citera
2009-12-08, 22:09
  #2
Medlem
kineticss avatar
Kod:
SELECT Förnamn, Efternamn from 
 (SELECT Förnamn, Efternamn, count(*) as antal FROM `Anställda` 
  INNER JOIN `Bilar` ON Bilar.anställdaid = Anställda.id group by anställda.id) 
 as inner 
WHERE inner.antal>2;
Citera
2009-12-09, 11:27
  #3
Medlem
Kod:
SELECT FörnamnEfternamnCOUNTBilar.id )
FROM `Anställda`
INNER JOIN `BilarON Bilar.anställdaid Anställda.id
GROUP BY Anställda
.id
HAVING COUNT
(Bilar.id) > 2
Citera
2009-12-10, 20:22
  #4
Moderator
Ruskigbusss avatar
Nån jämra trådlåning med en fråga som är helt åt helvete off topic uppmuntras icke. OT raderat.
/Mod
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback