Hallo,
Ik wil een overzichtje hebben, wat ik maar niet voor elkaar krijg.
Poging 1
Wat ik wil hebben is:
Ik wil alle records, waar f_id is 1 of 2.
Daarbij kan het zijn dat er een waarde vervangen moet worden door een andere (een vervanging). In het voorbeeld zie je dat dop spel vervangt.
SQL mbv subquery (niet getest):
Overige pogingen (kort):
Probleem is dus dat ik de SQL code niet werkend krijg naar eentje die MySQL 3.23 ondersteunt.
Poging 2
Wat ik wil hebben is:
Ik wil alle records, waar f_id is 1 of 2.
Daarbij kan het zijn dat er een waarde vervangen moet worden door een andere (een vervanging). In het voorbeeld zie je dat dop spel vervangt.
SQL mbv subquery (niet getest):
Zonder die count weet je niet zeker dat tie de nieuwe naam pakt. Vandaar die rare constructie die niet werkt, alleen wel laat zien wat ik bedoel.
Overige pogingen (kort):
Algemeen
1. Per f_id is source_id uniek. (een originele waarde kan niet door meerdere waardes vervangen worden.)
2. Ik sta open voor database wijzigingen
3. Het is niet uitgesloten dat het met de overige pogingen kort niet kan, alleen ik kom er niet uit.
Gevonden topics op GoT:
subquery > join...Hoe dan???
[rml][ MySQL] subquery oplossing gezocht[/rml]
Iemand een oplossing?
Ik wil een overzichtje hebben, wat ik maar niet voor elkaar krijg.
Poging 1
code:
1
2
3
4
5
6
| id | naam | f_id | source_id ----------------------------- 1 | spel | 1 | 0 2 | bal | 1 | 0 3 | dop | 2 | 1 4 | kurk | 3 | 1 |
Wat ik wil hebben is:
code:
1
2
3
4
| id | naam | f_id | source_id -------------------------- 2 | bal | 1 | 0 3 | dop | 2 | 1 |
Ik wil alle records, waar f_id is 1 of 2.
Daarbij kan het zijn dat er een waarde vervangen moet worden door een andere (een vervanging). In het voorbeeld zie je dat dop spel vervangt.
SQL mbv subquery (niet getest):
code:
1
2
3
4
| SELECT *
FROM tabel
WHERE (f_id = 1 OR f_id = 2)
AND id NOT IN s_id |
Overige pogingen (kort):
code:
1
2
| SELECT * FROM tabel A LEFT JOIN tabel B ON A.id = B.id |
Probleem is dus dat ik de SQL code niet werkend krijg naar eentje die MySQL 3.23 ondersteunt.
Poging 2
code:
1
2
3
4
5
6
| id | naam | f_id | join_id --------------------------- 1 | spel | 1 | 1 2 | bal | 1 | 2 3 | dop | 2 | 1 4 | kurk | 3 | 1 |
Wat ik wil hebben is:
code:
1
2
3
4
| id | naam | f_id | join_id ------------------------ 2 | bal | 1 | 2 3 | dop | 2 | 1 |
Ik wil alle records, waar f_id is 1 of 2.
Daarbij kan het zijn dat er een waarde vervangen moet worden door een andere (een vervanging). In het voorbeeld zie je dat dop spel vervangt.
SQL mbv subquery (niet getest):
code:
1
2
3
4
5
| SELECT * FROM tabel WHERE (f_id = 1 OR f_id = 2) GROUP BY join_id HAVING (count(join_id) > 1 AND id <> join_id) OR (count(join_id) = 1 AND id = join_id) |
Zonder die count weet je niet zeker dat tie de nieuwe naam pakt. Vandaar die rare constructie die niet werkt, alleen wel laat zien wat ik bedoel.
Overige pogingen (kort):
code:
1
2
3
4
| SELECT *
FROM tabel A, tabel B
WHERE (A.f_id = 1 OR A.f_id = 2)
AND (B.f_id = 1 OR B.f_id = 2) |
Algemeen
1. Per f_id is source_id uniek. (een originele waarde kan niet door meerdere waardes vervangen worden.)
2. Ik sta open voor database wijzigingen
3. Het is niet uitgesloten dat het met de overige pogingen kort niet kan, alleen ik kom er niet uit.
Gevonden topics op GoT:
subquery > join...Hoe dan???
[rml][ MySQL] subquery oplossing gezocht[/rml]
Iemand een oplossing?
[ Voor 1% gewijzigd door Verwijderd op 24-12-2003 15:03 . Reden: typo's ]