Archief - mysql: Delete uit 3 tabellen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

GizeH

Legacy Member
$sql = "DELETE FROM competitieland, competitiedivisie, competitieploeg ";
$sql .= "USING competitieland, competitiedivisie, competitieploeg ";
$sql .= "WHERE competitieland.id = competitiedivisie.landid AND competitiedivisie.id = competitieploeg.divisieid AND
competitieland.id = $landid";

Het probleem met deze query is dat hij enkel een delete laat plaatsvinden als er in alle 3 de tabellen overeenkomstige records aanwezig zijn.
Dus als er bijvoorbeeld geen ploegen aanwezig zijn zal competitiedivisie.id = competitieploeg.divisieid FALSE zijn en zullen er 0 rows affected zijn.

Weet iemand hoe ik dit werkend krijg?
Misshien met joins maar ik heb al vanalles geprobeerd hiermee zonder resultaat..

GizeH

Legacy Member
zou je zo vriendelijk willen zijn om de code eens te posten want kweet nie hoe ik die opstel. Ik kan wel met joins werken maar in een delete niet... :eek:

|t3st

Legacy Member
^o) laat me niet lachen :s DELETE FROM table1 LEFT OUTER JOIN table2 ON table1.key=table2.key LEFT OUTER JOIN table3 ON table2.key2=table3.key

die nummerkes kunt ge opvormen maar joins bij delete of bij een select zijn toch knats hetzelfde alsk me nie vergis ^o)
joins nog eens nalezen dus ;)

greetz Sluttie

DarkBone

Legacy Member
Ik dacht niet dat ge LEFT OUTER JOINS kon gebruiken bij MULTIPLE DELETES.
Volgens mij moet je gewoon 3 deletes gebruiken.
Checking it right now.

*edit*
Volgens de manual idd gewoon dezelfde syntax als bij JOINS van een select.

GizeH

Legacy Member
Code:
DELETE FROM competitieland LEFT OUTER JOIN competitiedivisie ON competitieland.id = competitiedivisie.landid LEFT OUTER JOIN competitieploeg ON competitiedivisie.id = competitieploeg.divisieid

Invalid query: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT OUTER JOIN competitiedivisie ON competitieland.id = compet

:doh:

DarkBone

Legacy Member
Gebruik anders gewoon 3 aparte queries, ik heb dat ook nog moeten doen. Ik dacht dat ik dit toen ook geprobeerd had en dat het ook niet werkte.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan