Ik ben bezig met een webapplicatie met database (MySql) waar verschillende soorten contracten in kunnen worden opgeslagen.
Situatie:
Er bestaan 2 soorten contracten; contracten tussen twee bedrijven en contracten tussen drie bedrijven. Ik wil een lijstje weergeven met de reeds ingevoerde contracten.
Er kan een selectie gemaakt worden uit de verschillende contractors die de zoekcriteria bepalen. Je kan dus op twee manieren zoeken:
- Op basis van de geselecteerde contractor 1 en contractor 2
- Op basis van de geselecteerde contractor 1, contractor 2 en contractor 3
Voor ieder van deze twee mogelijkheden heb ik een aparte SQL querie gemaakt:
Contractor 1 + 2. Query A
Contractor 1 + 2 + 3. Query B
Dit werkt prima. Op basis van verzonden waardes heb ik een controle ingebouwd die checkt of contractor 3 een waarde heeft. Heeft contractor 3 een waarde dan wordt Query B gebruikt, heeft contractor 3 GEEN waarde dan wordt Query A gebruikt.
Contractor 1 + 2 = Query A
Contractor 1 + 2 + 3 = Query B
Alleen nu is het zo; Of het lijstje laat de contracten zien die zijn opgebouwd uit 2 contractors of het lijstje laat de contracten zien die zijn opgebouwd uit 3 contractors.
Ik vraag me af of deze twee queries gecombineerd kunnen worden tot 1 query. Dan kan ik 1 lijst maken waar alletwee de verschillende contracten in worden weergegeven? Ik hoop dat ik het duidelijk heb weergegeven? Kan iemand mij verder helpen?
Alvast bedankt!
Situatie:
Er bestaan 2 soorten contracten; contracten tussen twee bedrijven en contracten tussen drie bedrijven. Ik wil een lijstje weergeven met de reeds ingevoerde contracten.
Er kan een selectie gemaakt worden uit de verschillende contractors die de zoekcriteria bepalen. Je kan dus op twee manieren zoeken:
- Op basis van de geselecteerde contractor 1 en contractor 2
- Op basis van de geselecteerde contractor 1, contractor 2 en contractor 3
Voor ieder van deze twee mogelijkheden heb ik een aparte SQL querie gemaakt:
Contractor 1 + 2. Query A
PHP:
1
2
3
4
5
6
7
8
9
10
| $sql = "SELECT contract.id, contract_party_vemedia.name AS vemname, contract_party.name AS cpname, contract_type.name AS tname FROM contract, contract_party, contract_type, contract_party_vemedia WHERE contract.party1 = contract_party_vemedia.id AND contract.party2 = contract_party.id AND contract.type = contract_type.id AND contract.party1 = waarde1 AND contract.party2 = waarde2 ORDER BY contract.id ASC"; |
Contractor 1 + 2 + 3. Query B
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
| $sql = "SELECT contract.id, contract_party_vemedia.name AS vemname, contract_party.name AS cpname, contract_party2.name AS cp2name, contract_type.name AS tname FROM contract, contract_party, contract_type, contract_party_vemedia WHERE contract.party1 = contract_party_vemedia.id AND contract.party2 = contract_party.id AND contract.party3 = contract_party2.id AND contract.type = contract_type.id AND contract.party1 = waarde1 AND contract.party2 = waarde2 AND contract.party3 = waarde3 ORDER BY contract.id ASC"; |
Dit werkt prima. Op basis van verzonden waardes heb ik een controle ingebouwd die checkt of contractor 3 een waarde heeft. Heeft contractor 3 een waarde dan wordt Query B gebruikt, heeft contractor 3 GEEN waarde dan wordt Query A gebruikt.
Contractor 1 + 2 = Query A
Contractor 1 + 2 + 3 = Query B
Alleen nu is het zo; Of het lijstje laat de contracten zien die zijn opgebouwd uit 2 contractors of het lijstje laat de contracten zien die zijn opgebouwd uit 3 contractors.
Ik vraag me af of deze twee queries gecombineerd kunnen worden tot 1 query. Dan kan ik 1 lijst maken waar alletwee de verschillende contracten in worden weergegeven? Ik hoop dat ik het duidelijk heb weergegeven? Kan iemand mij verder helpen?
Alvast bedankt!