[Kde-devel-es] consulta a MySql

Guillem Barba wallas85 at menta.net
Sat Nov 6 14:34:55 CET 2004


Hola,

tengo un problema y no sé como solucionarlo. Es de MySql.

Mi programa usa una base de datos que tiene (entre otras) tres tablas llamadas 
(y que contienen información sobre): clientes, obras y tareas, que están 
relacionadas (una obra _es de_ un cliente, y una tarea _es de_ una obra). 
Cuando el usuario quiere eliminar un cliente si eliminan también sus obras y 
sus tareas (o tareas de sus obras). Para hacerlo uso la siguiente consulta 
SQL

DELETE clientes, obras, tareas FROM clientes, obras, tareas WHERE 
tareas.idobra = obras.id AND obras.idcliente = clientes.id AND 
clientes.id= :id

que me funciona de maravilla si hay, como mínimo, una otra y una tarea de 
dicho cliente, pero a la que no hay algo de esto, no funciona. He probado 
sustituyendo los AND por OR (todos, o sólo uno...) pero entonces me elimina 
TODO lo de aquella tabla. Cómo lo puedo hacer para que funcione?

El servidor MySql que uso es "mysql  Ver 12.22 Distrib 4.0.21, for 
pc-linux-gnu (i386)" bajo Debian Sarge, y para hacer las consultas uso un 
objeto QSqlQuery de las Qt 3.3

No me interesa poner la versión 4.1 que soporta subconsultas pues el programa 
es para una empresa (pequeña) y prefiero no ponerle nada de unstable.

a ver si a alguien se le ocurre como hacerlo.

No pongo el código SQL que uso para crear las tablas pq creo que no hace 
falta, pero si sí, me lo decís y lo envío. Los IDs de cada tablas són 
UNSIGNED INTEGER y a las tablas que se relacionan les pongo:
FOREIGN KEY (idcliente) REFERENCES clientes

saludos!!

guillemBarba


More information about the Kde-devel-es mailing list