EirikO Skrevet 11. oktober 2008 Del Skrevet 11. oktober 2008 Jeg vil slette fra en tabell, men ha med andre tabeller i WHERE... Ved SELECT ville det sett slik ut: mysql_query("SELECT * FROM treningPamelding, treningSpec WHERE treningPamelding.spillerId = $spillerId AND treningSpec.treningId = $treningId AND treningPamelding.treningSpecId = treningSpec.treningSpecId") , men hvordan blir dette med DELETE? Ønsker å slette alt fra "treningsPamlding" som har en treningPamelding.treningSpecId som matcher treningSpec.treningSpecId. Fra denne tabellen skal treningId være en bestemt id... (treningSpec.treningId=$id) Vil altså ikke slette noe treningSpec! Lenke til kommentar
Jonas Skrevet 11. oktober 2008 Del Skrevet 11. oktober 2008 (endret) Jeg ville løst det ved å hente ut alle id'ene ved hjelp av spørringen du selv foreslår, nemlig SELECT ... og bruk disse til å slette. SELECT treningPamelding.id FROM treningPamelding, treningSpec WHERE treningPamelding.spillerId = $spillerId AND treningSpec.treningId = $treningId AND treningPamelding.treningSpecId = treningSpec.treningSpecId Disse concater du og bruker i en delete-spørring. 'DELETE FROM treningPamelding WHERE id IN (' . join ( ', ', arr[] ) . ')' Litt psuedo-kode her du sikkert må sette deg inn, men du kommer gjennom. Ikke nøl med å spørre videre! http://dev.mysql.com/doc/refman/5.0/en/com...tml#function_in http://no2.php.net/join (Jeg har gått utifra at du bruker PHP med MySQL.) Endret 11. oktober 2008 av Jonas Lenke til kommentar
Frank2004 Skrevet 12. oktober 2008 Del Skrevet 12. oktober 2008 Jeg ville løst det ved å hente ut alle id'ene ved hjelp av spørringen du selv foreslår, nemlig SELECT ... og bruk disse til å slette. SELECT treningPamelding.id FROM treningPamelding, treningSpec WHERE treningPamelding.spillerId = $spillerId AND treningSpec.treningId = $treningId AND treningPamelding.treningSpecId = treningSpec.treningSpecId Disse concater du og bruker i en delete-spørring. 'DELETE FROM treningPamelding WHERE id IN (' . join ( ', ', arr[] ) . ')' Eller slik: DELETE FROM treningPamelding WHERE id IN (SELECT treningPamelding.id FROM treningPamelding, treningSpec WHERE treningPamelding.spillerId = $spillerId AND treningSpec.treningId = $treningId AND treningPamelding.treningSpecId = treningSpec.treningSpecId) Lenke til kommentar
Jonas Skrevet 12. oktober 2008 Del Skrevet 12. oktober 2008 Uff, ja - ser først nå at man kan bruke subqueries inni ANY, IN og SOME. Det er jo naturligvis en langt finere løsning. http://dev.mysql.com/doc/refman/5.0/en/any...subqueries.html Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå