NAVIGATIE

Freetime overzicht
Zoeken


  RUBRIEKEN

FAQ / Help
Wat mag niet?
WZL Wedstrijden
WZL Chat
WZL Toolbar
WZL Statistieken
WZL leden
WZL shop
E-cards

RSS

Fun-feed
Babe-feed
Stud-feed

Een groot aantal pokerrooms geven de mogelijkheid om poker te spelen op internet en geld te storten via het veilige iDeal betaalsysteem.
Overzicht » Computer » Programmeren » SQL query vraagje
Onderaan pagina
dannyboy 3.329
wzl-lid
Sinds 31/5/2005
T: 108 R: 883
13/8/2009 - 14:55u | Quote
Hoi hoi,

stel, je hebt volgende tabel:

col1.........col2.........col3
-----.........-----.........-----
1...............b...........TRUE
2...............b...........FALSE
3...............a...........FALSE
4...............c...........TRUE
5...............a...........FALSE

Dan zou ik een query willen maken om voor elke kolom de unieke waarden terug te krijgen. dus:

col1.........col2.........col3
-----.........-----.........-----
1...............a...........TRUE
2...............b...........FALSE
3...............c...........NULL
4.............NULL........NULL
5.............NULL........NULL

Waarom wil ik dit zo doen? Ik heb een tabel met meer kolommen dan dit en ik moet een hoop dropdownlists vullen met de unieke waarden van elke kolom. Om loadtime te besparen wil ik niet 25 keer een "SELECT DISTINCT column FROM table" doen. Ik heb al iets proberen te maken met subquerys, maar dat is gefaald.
dannyboy 3.329
wzl-lid
Sinds 31/5/2005
T:108 - R:883
13/8/2009 - 15:41u | Quote
kleine update:

Aangezien de rijen niet meer consequent zullen zijn over de verschillende kolommen (de waarden van de 2de kolom hebben bv. geen relatie meer met die van de eerste kolom, de kolommen zijn in feite gewoon aan elkaar geplakt) is het logisch dat ik hiervoor met joins ga werken. Een voorbeeld hiervan is het volgende:

SELECT *
FROM
(SELECT DISTINCT col1
FROM table)
CROSS JOIN
(SELECT DISTINCT col2
FROM table)

Hierbij krijg ik het zogenaamde cartesisch product waarbij elke unieke waarde van col1 met elke unieke waarde van col2 wordt gelinkt:

1 a
1 b
1 c
2 a
2 b
2 c
3 a
3 b
3 c
4 a
4 b
4 c
5 a
5 b
5 c

Ik moet dus eigenlijk het omgekeerde van een cartesisch product hebben. Iemand een idee?
D3ton8oR
Stella-man
Sinds 15/10/2003
T:32 - R:1581
13/8/2009 - 18:44u | Quote

Ik moet dus eigenlijk het omgekeerde van een cartesisch product hebben. Iemand een idee?


FROM table)
(SELECT DISTINCT col2
CROSS JOIN
FROM table)
(SELECT DISTINCT col1
FROM
SELECT *



Alstublieft!
dannyboy 3.329
wzl-lid
Sinds 31/5/2005
T:108 - R:883
14/8/2009 - 8:10u | Quote
D3ton8oR schreef:

Ik moet dus eigenlijk het omgekeerde van een cartesisch product hebben. Iemand een idee?


FROM table)
(SELECT DISTINCT col2
CROSS JOIN
FROM table)
(SELECT DISTINCT col1
FROM
SELECT *



Alstublieft!

haha khad het bijna geprobeerd
 
Bovenaan pagina