Tabelopmaak:
Owkeey.. Wat ik heb: een lid en een uid. Ik wil een relatie tussen die 2 aanleggen in de tabel relations, maar alleen als die relatie nog niet bestaat. 2 andere voorwaarden: logins.level moet kleiner zijn dan 20 (dus er moet 1 record in logins zitten met de goede lid EN een laag level (<20)), én er moet 1 record in de tabel users zitten met de goeie uid.
Wat ik nu heb is ongeveer dit:
select lid from logins where level < 20 and lid = xx;
als er 1 result is, ga door, anders quit
select uid from users where uid = xx;
als er 1 result is, ga door, anders quit
select rid from relations where uid = xx and lid = xx;
als er 0 results zijn, ga door, anders quit
insert into relations (lid, uid) values (xx, xx);
Ik breek er me nek over
Ik héb zo het gevoel dat dit met een of andere join kan, maar kennerlijk maak ik die draai in mijn hoofd niet dat ik erachter kom. Kan iemand een tip geven?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| Tabel relations: +----------+-----------------------+----------------+ | Field | Type | Extra | +----------+-----------------------+----------------+ | rid | smallint(5) unsigned | auto_increment | | lid | smallint(5) unsigned | | | uid | smallint(5) unsigned | | +----------+-----------------------+----------------+ Tabel logins: +----------+----------------------+----------------+ | Field | Type | Extra | +----------+----------------------+----------------+ | lid | smallint(5) unsigned | auto_increment | | level | tinyint(2) unsigned | | +----------+----------------------+----------------+ Tabel users: +----------+----------------------+----------------+ | Field | Type | Extra | +----------+----------------------+----------------+ | uid | smallint(5) unsigned | auto_increment | | dispname | varchar(255) | | +----------+----------------------+----------------+ |
Owkeey.. Wat ik heb: een lid en een uid. Ik wil een relatie tussen die 2 aanleggen in de tabel relations, maar alleen als die relatie nog niet bestaat. 2 andere voorwaarden: logins.level moet kleiner zijn dan 20 (dus er moet 1 record in logins zitten met de goede lid EN een laag level (<20)), én er moet 1 record in de tabel users zitten met de goeie uid.
Wat ik nu heb is ongeveer dit:
select lid from logins where level < 20 and lid = xx;
als er 1 result is, ga door, anders quit
select uid from users where uid = xx;
als er 1 result is, ga door, anders quit
select rid from relations where uid = xx and lid = xx;
als er 0 results zijn, ga door, anders quit
insert into relations (lid, uid) values (xx, xx);
Ik breek er me nek over