Me again
Onderstaande code selecteert de agents die een bepaald contract hebben en de authorizations die horen bij dat contract, behalve de authorizations die de agents al hebben en maakt de agents vervolgens lid van de authorizations. Dit omdat er een paar uitzonderingen zijn op de databasestructuur die ik met behulp van aangepaste queries (zoals deze) wil opvangen.
Database structuur:

Inhoud van agent_authorization:

Het probleem is dat als één of meer agents van dat bepaalde contract al lid zijn van een bepaalde authorization (in dit geval authorization_id 22 die alleen agent 512554 heeft) dat ie niet wordt toegevoegd aan de agent(s) die er niet lid van zijn. Ik wil juist dat de query dat wel doet. Nu werkt de query alleen als alle agents dezelfde authorizations hebben, maar niet als er een verschil is. Ik heb vanalles al geprobeerd maar het lukt me niet. Ik heb naast $_POST[id] (contract_id) ook de beschikking over $_GET[id] (team_id).
Iemand?
Onderstaande code selecteert de agents die een bepaald contract hebben en de authorizations die horen bij dat contract, behalve de authorizations die de agents al hebben en maakt de agents vervolgens lid van de authorizations. Dit omdat er een paar uitzonderingen zijn op de databasestructuur die ik met behulp van aangepaste queries (zoals deze) wil opvangen.
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| INSERT INTO agent_authorization (agent_id, authorization_id) SELECT DISTINCT agent_contract.agent_id, ad_group.authorization_id FROM ad_group, agent_contract WHERE agent_contract.contract_id = '$_POST[id]' AND ad_group.contract_id = '$_POST[id]' AND ad_group.authorization_id NOT IN ( SELECT agent_authorization.authorization_id FROM agent_authorization WHERE agent_id IN ( SELECT agent_id FROM agent_contract WHERE contract_id = '$_POST[id]' ) ) |
Database structuur:

Inhoud van agent_authorization:

Het probleem is dat als één of meer agents van dat bepaalde contract al lid zijn van een bepaalde authorization (in dit geval authorization_id 22 die alleen agent 512554 heeft) dat ie niet wordt toegevoegd aan de agent(s) die er niet lid van zijn. Ik wil juist dat de query dat wel doet. Nu werkt de query alleen als alle agents dezelfde authorizations hebben, maar niet als er een verschil is. Ik heb vanalles al geprobeerd maar het lukt me niet. Ik heb naast $_POST[id] (contract_id) ook de beschikking over $_GET[id] (team_id).
Iemand?