Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Queries anidadas en MySQL

Estas en el tema de Queries anidadas en MySQL en el foro de Bases de Datos General en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 23/06/2005, 12:45
Avatar de caerolus  
Fecha de Ingreso: agosto-2004
Ubicación: Madrid, España
Mensajes: 280
Antigüedad: 19 años, 8 meses
Puntos: 1
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.
__________________
Mi página personal: Julián Urbano
  #2 (permalink)  
Antiguo 23/06/2005, 12:51
Avatar de caerolus  
Fecha de Ingreso: agosto-2004
Ubicación: Madrid, España
Mensajes: 280
Antigüedad: 19 años, 8 meses
Puntos: 1
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?
__________________
Mi página personal: Julián Urbano
  #3 (permalink)  
Antiguo 23/06/2005, 13:32
Avatar de haron  
Fecha de Ingreso: febrero-2004
Ubicación: Cádiz (refinitivo)
Mensajes: 632
Antigüedad: 20 años, 2 meses
Puntos: 3
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.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:31.