Omzetten SQL query in PHP naar SQL query voor DTS package

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Wie weet hoe ik de onderstaande SQL-queries in de php code in alleen SQL code kan implementeren, zodat ik deze in een DTS package op een MS SQL 2000 server kan verwerken?

Alvast bedankt!


<?PHP

/* ... hier: aanmaken connectie ... */


$querySELECT = "SELECT serienr FROM Laptops";
$resultSELECT = mssql_query($querySELECT) or die("foutje in select query");
$rowSELECT = mssql_fetch_array($resultSELECT);

do
{
$queryUPDATE = "UPDATE Laptops
SET persId = (SELECT DISTINCT P.persoon FROM Personen AS P, PersoonLaptop AS PL WHERE (P.persoon = PL.persoon) AND (PL.serienr = '" . $rowSELECT[0] . "') )
WHERE (serienr = '" . $rowSELECT[0] . "')";

mssql_query($queryUPDATE) or die("foutje in update query");

}while ($rowSELECT = mssql_fetch_array($resultSELECT));

?>

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-09 08:45

Bosmonster

*zucht*

Ehm.. je doet nu toch gewoon een update op alle records? Waarom doe je dat in PHP uberhaupt al zo omslachtig? :P

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Misschien kan het wel eenvoudiger (???), maar als je een redelijk tijdje aan het programmeren bent, dan gaat men wel eens overbodige php uitwerken.

De update query is erg van belang en ik wil het graag in een DTS package implementeren; voor een realtime database conversie

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Iemand een idee? of misschien waar ik dat op een website kan opzoeken?
:?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Je update query heeft twee WHERE-clausules, en daarvan kan de tweede in zijn geheel weg. Je query is zonder loop te doen als je nog een tweede join aan je query toevoegt op de tabel Laptops.

Verder is het niet echt slim om een do...while loop te gebruiken, want dat zal je fouten opleveren als de Laptops-tabel leeg zou zijn. Do...while wordt daarom ook erg weinig toegepast.

'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.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Zou dit dan een goede oplossing zijn? (lijkt er wel op... :? )


UPDATE Laptops
SET persId = PL.persoon
FROM PersoonLaptop AS PL, Laptops AS L
WHERE PL.serienr = L.serienr

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
oeps foutje in de join, het moet dit zijn:


UPDATE Laptops
SET persId = PL.persoon
FROM PeroonLaptop AS PL FULL OUTER JOIN Laptops AS L ON PL.serienr = L.serienr


Probleem opgelost! :)
Pagina: 1