Would you like to know more?!! [StarShip Troopers] - Void Station
Ik snap er helemaal niets van. Probeer het eens op een andere manier uit te leggen. Wat zoek je precies, welke resultset verwacht en welke resultset krijg je nu?
Never underestimate the power of
Wat ik wil is dat ik 3 AD_Image terug krijg met dezelfe of verschillende waarde gerelateers aan VS_BAnner
Nu Krijg ik wel 3 result als VS_BannerX verschillend is als er 1 hetzelfde is krijg ik er maar 2, maar ik wil die dubble ook terug krijgen
Nu Krijg ik wel 3 result als VS_BannerX verschillend is als er 1 hetzelfde is krijg ik er maar 2, maar ik wil die dubble ook terug krijgen
Would you like to know more?!! [StarShip Troopers] - Void Station
Ik wil niet heel vervelend klinken, maar dit riekt een beetje naar een niet al te solide datamodel (eufemisme van de dag
).
Kan je relevante zaken uit je datamodel posten? Ik vraag me namelijk af waarom de VS_Banner niet in een losse tabel staan?
Kan je relevante zaken uit je datamodel posten? Ik vraag me namelijk af waarom de VS_Banner niet in een losse tabel staan?
offtopic:
Als ik mis zit, vergeef me dan mijn brutaliteit
Als ik mis zit, vergeef me dan mijn brutaliteit
Today's subliminal thought is:
Ik geloof dat ik het een klein beetje door begin te krijgen: volgens mij wil je altijd drie records terugkrijgen. En per record in de tabel Tbl_VideoSkin0 zijn er een, twee of drie gerelateerde records in de tabel Tbl_Advert.
Maar door deze db-structuur wordt je min of meer gedwongen om alles in één record terug te krijgen. Tenzij je UNION ALL gaat gebruiken, maar dat is ook niet bepaald een fraaie oplossing. Een gewone UNION werkt trouwens absoluut niet, omdat die ook nog een DISTINCT uitvoert, waardoor je de dubbelen dus weer kwijt bent.
Stop je alles in één record dan krijg je zoiets:
En met UNION ALL zou je dit krijgen:
Succes met testen als dit is wat je zoekt en anders succes met uitleggen, want dan heb ik het nog niet begrepen.
Maar door deze db-structuur wordt je min of meer gedwongen om alles in één record terug te krijgen. Tenzij je UNION ALL gaat gebruiken, maar dat is ook niet bepaald een fraaie oplossing. Een gewone UNION werkt trouwens absoluut niet, omdat die ook nog een DISTINCT uitvoert, waardoor je de dubbelen dus weer kwijt bent.
Stop je alles in één record dan krijg je zoiets:
code:
1
2
3
4
5
6
7
8
9
10
11
| SELECT A0.AD_Image AS AD_Image0,
A1.AD_Image AS AD_Image1,
A2.AD_Image AS AD_Image2,
VS.VS_Banner0,
VS.VS_Banner1,
VS.VS_Banner2
FROM Tbl_VideoSkin0 VS
INNER JOIN Tbl_Advert A0 ON A0.AD_ID = VS.VS_Banner0
INNER JOIN Tbl_Advert A1 ON A1.AD_ID = VS.VS_Banner1
INNER JOIN Tbl_Advert A2 ON A2.AD_ID = VS.VS_Banner2
WHERE VS.VS_ID = 6 |
En met UNION ALL zou je dit krijgen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| SELECT AD_Image,
VS_Banner0,
VS_Banner1,
VS_Banner2
FROM Tbl_VideoSkin0
INNER JOIN Tbl_Advert ON Tbl_VideoSkin0.VS_Banner0 = Tbl_Advert.AD_ID
WHERE Tbl_VideoSkin0.VS_ID = 6
UNION ALL
SELECT AD_Image,
VS_Banner0,
VS_Banner1,
VS_Banner2
FROM Tbl_VideoSkin0
INNER JOIN Tbl_Advert ON Tbl_VideoSkin0.VS_Banner1 = Tbl_Advert.AD_ID
WHERE Tbl_VideoSkin0.VS_ID = 6
UNION ALL
SELECT AD_Image,
VS_Banner0,
VS_Banner1,
VS_Banner2
FROM Tbl_VideoSkin0
INNER JOIN Tbl_Advert ON Tbl_VideoSkin0.VS_Banner2 = Tbl_Advert.AD_ID
WHERE Tbl_VideoSkin0.VS_ID = 6 |
Succes met testen als dit is wat je zoekt en anders succes met uitleggen, want dan heb ik het nog niet begrepen.
Never underestimate the power of