Vinnaren i pepparkakshustävlingen!
2009-10-25, 21:16
  #1
Medlem
Jag vet hur man använder JOIN men är det någon som skulle förklara skillnaden mellan INNER JOIN och JOIN är det någon som skulle kunna förklara detta för mig?
Citera
2009-10-25, 21:30
  #2
Medlem
ojns avatar
JOIN kan man säga är ett samlingsnamn för alla typer av JOINs, där INNER JOIN är den vanligaste typen.
Citera
2009-10-25, 21:32
  #3
Medlem
Okej.

Men när jag då använder den, ska jag använda INNER JOIN eller ska jag bara skriva ut JOIN? Eller det kanske inte blir någon skillnad?

Sedan undrar jag också ifall det är dumt att använda för många JOINS i samma fråga och att det kanske är bättre att köra flera mindre frågor än att köra flera JOINS?
Citera
2009-10-25, 21:34
  #4
Medlem
ojns avatar
Svarar på första frågan: Jag tror du kan skriva bara JOIN och de flesta databaser default:ar till INNER JOIN, men tydlighet är a och o inom all programmering. Skriv INNER JOIN i stället, det är värt de extra tangenttryckningarna.
Citera
2009-10-25, 21:42
  #5
Moderator
Protons avatar
Citat:
Ursprungligen postat av Spelkontroll
Okej.

Men när jag då använder den, ska jag använda INNER JOIN eller ska jag bara skriva ut JOIN? Eller det kanske inte blir någon skillnad?

Sedan undrar jag också ifall det är dumt att använda för många JOINS i samma fråga och att det kanske är bättre att köra flera mindre frågor än att köra flera JOINS?
Normalt sett brukar åtminstånde jag vilja ha databasen att ge mej den efterfrågade datan utan att "hamra" den med flera småfrågor. Bättre isf att joina ihop de tabeller man behöver i en lång SQL än att köra fler småfrågor.

Dessutom sitter det ju för det mesta en query optimizer i databasen som troligen är bättre på att analysera frågor och göra saker i rätt ordning än vad du är. Med andra ord, skriv EN fråga som plockar fram den data du behöver ist för att hacka upp den i ett flertal delfrågor.

Det finns mej veterligen inte någon speciell övre gräns för hur många joins en fråga kan innehålla, det handlar snarare i så fall om hur pass komplex och normaliserad databasens struktur är.

Jag har nu när jag tänker efter varit med om EN gång då jag manuellt behövt ingripa och ändra JOIN-ordningen i en SQL-fråga, men den gången handlade det om en hårt belastad databasserver och en riktigt stor SQL-fråga, samt vissa begränsningar som satt i databasmotorn som gjorde att det inte funkade optimalt. Under normala laster och frå´gefrekvens bör varkken antalet JOINs eller ordnigen på dessa ha någon menlig inverkan på databasens prestanda.
__________________
Senast redigerad av Proton 2009-10-25 kl. 21:50.
Citera
2009-10-26, 13:20
  #6
Medlem
Mys-Hitlers avatar
Till Protons svar kan läggas att de flesta databashanterare har olika former av cachningsmekanismer. Om du ställer samma fråga flera gånger i rad kommer databashanteraren att ta fram svaret en gång, därefter kommer den att lämna ifrån sig det cachade svaret så länge inte datan som frågan gäller har förändrats.
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