Retroceder   Foros del Web > Programación para sitios web > Bases de Datos

Respuesta
 
Herramientas Desplegado
Antiguo 23-jun-2005, 12:45   #1 (permalink)
caerolus está en el buen camino
 
Avatar de caerolus
 
Fecha de Ingreso: agosto-2004
Ubicación: Madrid, España
Mensajes: 275
Queries anidadas en MySQL

Hola a todos, estoy teniendo un problema con MySQL, porque no soporta queries anidadas. Lo que tengo es esto:
Código:
create table sesion(
	sid		int			not null,
	tiempo		int			not null,
	primary key (sid)
);
create table variable(
	sid		int			not null,
	nombre		int			not null,
	valor		int			not null,
	primary key(sid, nombre),
	foreign key (sid) references sesion (sid)
);
Pues bien, querría hacer una query para borrar todos los registros de variable cuyo tiempo en la tabla sesion sea menor que 5, por ejemplo, además de los registros de sesion que cumplan esa misma condición.
Hacer un select sobre las tablas es muy sencillo:
Código:
select * from variable, sesion where variable.sid = sesion.sid and sesion.tiempo < 5
Pero el problema está en borrar los registros de la tabla variable. Lo suyo sería esto:
Código:
delete from variable where sid in (select sid from sesion where tiempo < 5)
Pero en MySQL esto no va, porque tiene una query anidada.
Alguien sabe como arreglar esto de una forma decente, sin tener que andar haciendo guarrerías?
Gracias.
caerolus está desconectado   Responder Citando
Antiguo 23-jun-2005, 12:51   #2 (permalink)
caerolus está en el buen camino
 
Avatar de caerolus
 
Fecha de Ingreso: agosto-2004
Ubicación: Madrid, España
Mensajes: 275
Es posible que lo haya hecho:
Código:
delete variable.* from variable left join sesion on variable.sid = sesion.sid where sesion.tiempo < 5
¿Qué os parece?
caerolus está desconectado   Responder Citando
Antiguo 23-jun-2005, 13:32   #3 (permalink)
haron está en el buen camino
 
Avatar de haron
 
Fecha de Ingreso: febrero-2004
Ubicación: Cádiz (refinitivo)
Mensajes: 633
leches!

normalmente tenia que hacer un programita en estos casos. por que nadie me lo dijo?
__________________
Si ocurre algo importante, estamos afuera fumándonos unos cigarritos.
haron está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 13:58.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93