[mySQL] join met voorwaarde

Pagina: 1
Acties:

  • bRight
  • Registratie: Juli 2000
  • Laatst online: 27-11-2024

bRight

digitaal

Topicstarter
Een collega van me kwam met het volgende probleem:

Je hebt de volgende tabellen:
code:
1
2
3
4
5
6
7
8
9
10
11
+---------------- game -----------------+
+-- tee_start_men --- tee_start_women --+
|   1              |  0                 |
|   0              |  2                 |
+---------------------------------------+

+------ tee ------+
+-- id --- name --+
|   1   |  Lorum  |
|   2   |  Ipsum  |
+-----------------+

Als er in tee_start_men iets meers dan 0 staat moet er een join op game.tee_start_men = tee.id gemaakt worden. Als er in tee_start_women iets meers dan 0 staat moet er een join op game.tee_start_woman = tee.id gemaakt worden. Volgens mij heb ik dit soort shit veel vaker aan de hand gehad maar is het me een beetje ontschoten ;)

Tabel game kan natuurlijk beter genormaliseerd worden, maar de tabellen worden 1 op 1 overgenomen door synchronisatie met een lokale database.
Zo'n join moet toch mogelijk zijn? :)

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 22:30

Cyphax

Moderator LNX
Als je ze nou gewoon altijd joined kun je bij de condities in de where clause aangeven dat je alleen dat wil selecteren als tee_start_men wel of niet 0 is, en/of als tee_start_women wel of niet 0 is. Je moet het natuurlijk wel eerst A selecten als je wilt controleren wat de waarde van A is. :)
Dus leg de join er gewoon in en controleer dan in de where op de waarde van dat veld.

Saved by the buoyancy of citrus


  • bRight
  • Registratie: Juli 2000
  • Laatst online: 27-11-2024

bRight

digitaal

Topicstarter
Ik heb al een andere oplossing gevonden.. gewoon game.tee_start_men en game.tee_start_women bij elkaar optellen in de query en daar een alias aan koppelen en die joinen op tee.id. :)