Sql giver dublikerede Id ud
Jeg har nedenstående sql streng. Hvis Selector='SiteNews' er ArtistId=-1, er Selector='ArtistNews' er ArtistId>0Hvis 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?
