Avatar billede idiotbarn Nybegynder
03. oktober 2006 - 10:48 Der er 5 kommentarer og
1 løsning

Sql giver dublikerede Id ud

Jeg har nedenstående sql streng. Hvis Selector='SiteNews' er ArtistId=-1, er Selector='ArtistNews' er ArtistId>0

Hvis MySql havde understøttet subqueryes havde den heddet (noget i stil med):
"Select top 4 G.Id, G.Headline, G.Text, G.AvFrom, G.Selector, G.Picture from GeneralTexts G where G.SiteId=3 AND G.AvFrom<=@Dato AND (G.Selector='SiteNews' OR (G.Selector='ArtistNews' AND G.ArtistId NOT IN(Select Id from Artists where SiteId=3 AND Activated=0))) Order By G.AvFrom DESC

Her er problemet


SELECT G.Id, G.Headline, G.Text, G.AvFrom, G.Selector, G.Picture
FROM GeneralTexts G, Artists A
WHERE G.SiteId = 3
AND G.AvFrom <= NOW( )
AND (
G.Selector = 'SiteNews'
OR (
G.Selector = 'ArtistNews'
AND G.ArtistId != -1
AND G.ArtistId = A.Id
AND A.Activated = 1
)
)ORDER BY G.AvFrom DESC
LIMIT 4

den giver ikke nogen fejl, men tilgengæld hiver den flere ens rækker ud, lig mærke til at id 696 er der 3 gange?
Id      Headline Text          Selector      Picture
696    qweqwe     qweqw          ArtistNews    
695    awdawd     awdawawd     SiteNews    
695    awdawd     awdawawd     SiteNews    
695    awdawd     awdawawd     SiteNews    

De akutelle posts i GeneralTexts
Id  Headline  Text        ArtistId SiteId Selector
695 awdawd    awdawawd    -1       3       SiteNews         
696 qweqwe    qweqw      434       3       ArtistNews   

Artists for Id 434
Id  Name        SiteId Activated
434  TEST-ARTIST  3     1


Nogen der har nogen ideer til hvorfor den ikke fungere? Eller hvorfor der kommer så mange dubliketter med samme id?
Avatar billede gertp Nybegynder
03. oktober 2006 - 11:07 #1
måske kan select distinct bruges
Avatar billede idiotbarn Nybegynder
03. oktober 2006 - 11:28 #2
ja...pakker jeg  G.Id ind i en distinct så giver det det rigtige resultat. Men er det løsningen? Syntes den virker lidt underlig :)
Avatar billede gertp Nybegynder
03. oktober 2006 - 12:18 #3
har du kun 2 posts i generaltexts kan du prøve at lægge nogle flere ind og se om problemet stadig er der..ved ikke om den kan finde på at vise 695 3 gange fordi du har limit 4
Avatar billede idiotbarn Nybegynder
03. oktober 2006 - 14:44 #4
nej, der er nemlig flere, det er derfor det er lidt underligt
Avatar billede idiotbarn Nybegynder
08. oktober 2006 - 21:17 #5
hm...men under alle omstændigheder så har det virket :) Ligger du et svar?
Avatar billede gertp Nybegynder
11. oktober 2006 - 09:25 #6
:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester