Toon posts:

[MySQL] Samenvoegen van twee SELECT-queries*

Pagina: 1
Acties:
  • 165 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
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

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!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10:42

gorgi_19

Kruimeltjes zijn weer op :9

Heb je ook een duidelijke titel? Het forum wordt een beetje onoverzichtelijk als er alleen maar:

ASP probleem
PHP probleem
Probleem met Java
...

staat in topiclisting :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Standeman
  • Registratie: November 2000
  • Laatst online: 12:19

Standeman

Prutser 1e klasse

zoiets bedoel je?

code:
1
2
3
4
5
AND contract.party2 = waarde2";
if (waarde3 != null) {
$sql += "AND contract.party3 = waarde3";
}
$sql += "ORDER BY contract.id ASC";

The ships hung in the sky in much the same way that bricks don’t.


Verwijderd

Topicstarter
excuus, het gaat om MySQL in combinatie met PHP :P

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Verwijderd schreef op donderdag 19 mei 2005 @ 13:52:
excuus, het gaat om MySQL in combinatie met PHP :P
Aha, dus de titel zou worden "MySQL & PHP query probleem"? Ook niet al te duidelijk, of wel? 8)7 Ik heb zelf even een titel verzonnen voor je, die de lading wat beter dekt. Denk daar de volgende keer zelf even aan asjeblieft. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
en bedankt he...
Modbreak:Graag gedaan, maar laten we het nu weer ontopic houden. De volgende keer kan je een titelwijziging doorgeven via een topicreport ( Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/tweakers/images/icons/icon_hand.gif ) :)

[ Voor 91% gewijzigd door NMe op 19-05-2005 14:44 ]

Pagina: 1