webForumDet fria alternativet

Dubbletter vid inner join

Databaser & SQL

10 svar · 887 visningar · startad av timedia

Medlem sedan maj 2001420 inlägg
Frågan#1

Detta Rs ger dubbletter. Har försökt med Select Distinct, men lyckas inte. Sorteringen bör väl göras i selecten, men hur gör man?

"SELECT Pmiljo.Id, Pmiljo.Miljonr, Pmiljo.Platta AS Miljoplatta, Pmiljo.PU, Pmiljo.Bild AS Miljobild, Pmiljo.Brodtxt, Plattor.Id AS Plattid, Plattor.Artikelnr AS Artikelnr, Plattor.Bild AS Plattbild, Plattor.Namn AS Plattnamn, Plattor.brodtxt FROM Pmiljo INNER JOIN Plattor ON Pmiljo.Platta = Plattor.Artikelnr WHERE Pmiljo.Miljonr = '" & miljo & "'"
Medlem sedan juni 200032 967 inlägg
#2
  1. Ställ frågor om SQL i SQL-forumet.
  2. Läs.
Medlem sedan dec. 200012 464 inlägg
#3

Vad menar du med dubletter?
Vad förväntar du dig för resultat?
Vilket resultat får du?

Flyttas från ASP

Medlem sedan maj 2001420 inlägg
#4

Jag ska skriva ut vilka plattor som används i miljöet. Samma platta används ibland på vägg OCH golv. Dock vill jag att den skrivs ut bara en gång. Idag loopar jag genom RS och då skriver den ut samma platta fler gånger om den används på fler ställen i miljöet.

Medlem sedan dec. 200012 464 inlägg
#5

Du får alltså (det förenklade) resultatet

Platta Ställe
Plattan vägg
Pluttan vägg
Plattan golv

?

Om det är så, vad vill du ha egentligen?

Medlem sedan maj 2001420 inlägg
#6

Jag får
Platta Ställe
Plattan Vägg
Platta Ställe
Plutta Bård

men vill ha:
Platta Ställe
Plattan Vägg
Plutta Bård

Medlem sedan dec. 200012 464 inlägg
#7

Det skulle lösa sig med distinct.

Medlem sedan maj 2001420 inlägg
#8

Men.. det gör det inte?

"SELECT Distinct Plattor.Id AS Plattid, Pmiljo.Id, Pmiljo.Platta AS Miljoplatta, Pmiljo.Miljonr, Pmiljo.PU, Pmiljo.Bild AS Miljobild, Pmiljo.Brodtxt, Plattor.Artikelnr AS Artikelnr, Plattor.Bild AS Plattbild, Plattor.Namn AS Plattnamn, Plattor.brodtxt FROM Pmiljo INNER JOIN Plattor ON Pmiljo.Platta = Plattor.Artikelnr WHERE Pmiljo.Miljonr = '" & miljo & "'"

Vad gör jag galet??

Medlem sedan mars 20034 471 inlägg
#9

Du skriver ju ut värdet TVÅ gånger i varje fråga!

SELECT ...., Pmiljo.Platta AS Miljoplatta, ...., Plattor.Artikelnr AS Artikelnr, ... 
FROM Pmiljo INNER JOIN Plattor ON Pmiljo.Platta = Plattor.Artikelnr....

Alltså ha inte med BÅDE Pmiljo.Platta och Plattor.Artikelnr i SELECT. De har ju alltid samma värde, så ta bara ut det ena av dem.

Stoppa gärna in radbrytningar på lämpliga ställen när du skriver en kodruta, så slipper man skrolla i sidled...

Medlem sedan maj 2001420 inlägg
#10

Funkar ej, visar fortfarande dubbletter:

sql = "SELECT Distinct Plattor.Id AS Plattid, Pmiljo.Id, Pmiljo.Miljonr, Pmiljo.PU, 
Pmiljo.Bild AS Miljobild, Pmiljo.Brodtxt, Plattor.Bild AS Plattbild, 
Plattor.Namn AS Plattnamn, Plattor.brodtxt FROM Pmiljo INNER JOIN Plattor ON
Pmiljo.Platta = Plattor.Artikelnr WHERE Pmiljo.Miljonr = '" & miljo & "'"
Medlem sedan maj 2001420 inlägg
#11

Funkar nu. Hämtade många onödiga värden.

	sql = "SELECT Distinct Plattor.Id AS Plattid, Pmiljo.Bild AS Miljobild, Plattor.Bild AS Plattbild, Plattor.Namn AS Plattnamn FROM Pmiljo INNER JOIN Plattor ON Pmiljo.Platta = Plattor.Artikelnr WHERE Pmiljo.Miljonr = '" & miljo & "'"
263 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)