dannyboy
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
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
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
|