Ik ben voor 'het grote Xbox topic' bezig met een website (zie sig
) maar ik loop nu tegen een probleem aan:
Ik heb de volgende tabellen:
Tabel: Games
Tabel: Usergames
Dus
User 1 heeft Top Spin, Rainbox Six en Unreal.
User 2 heeft Top Spin en MechAssault.
User 3 heeft alleen Unreal.
Nu zoek ik een query waarmee ik van iedere user op kan vragen welke spellen die user niet heeft. Ik weet alleen niet hoe ik dat voor elkaar moet krijgen. Dus als ik de query uitvoer voor user 1 moet ik er DoA en MechAssault uit krijgen.
Aangezien subqueries niet mogelijk zijn in MySQL is het gebruik van NOT EXISTS en NOT IN niet mogelijk.
Het dichtstbij ben ik gekomen met
Daarmee krijg ik de games die niemand heeft, in mijn voorbeeld dus enkel Dead or Alive.
Hoe doe ik dit?
Ik heb de volgende tabellen:
Tabel: Games
| GameID | Title |
| 1 | Top Spin |
| 2 | Rainbow Six |
| 3 | Unreal Championship |
| 4 | Dead or Alive Online |
| 5 | MechAssault |
Tabel: Usergames
| ID | UserID | GameID |
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 3 |
| 4 | 2 | 1 |
| 5 | 2 | 5 |
| 6 | 3 | 3 |
Dus
User 1 heeft Top Spin, Rainbox Six en Unreal.
User 2 heeft Top Spin en MechAssault.
User 3 heeft alleen Unreal.
Nu zoek ik een query waarmee ik van iedere user op kan vragen welke spellen die user niet heeft. Ik weet alleen niet hoe ik dat voor elkaar moet krijgen. Dus als ik de query uitvoer voor user 1 moet ik er DoA en MechAssault uit krijgen.
Aangezien subqueries niet mogelijk zijn in MySQL is het gebruik van NOT EXISTS en NOT IN niet mogelijk.
Het dichtstbij ben ik gekomen met
code:
1
2
3
4
| SELECT g.gameid, title FROM games AS g LEFT JOIN usergames AS u ON u.gameid=g.gameid WHERE u.gameid IS NULL |
Daarmee krijg ik de games die niemand heeft, in mijn voorbeeld dus enkel Dead or Alive.
Hoe doe ik dit?
[ Voor 4% gewijzigd door Maniakje op 25-11-2003 20:20 ]
The sentence below is true.
The sentence above is false.