SQL - buscar sin subconsultas

 
Vista:

buscar sin subconsultas

Publicado por TeenSpirits (9 intervenciones) el 10/04/2006 23:40:55
Tengo dos tablas: socios y cuotas. En la tabla Socios tengo el nombre de los socios con la fecha de baja (si es que estan dados de baja) y sin fecha de baja (si es que no estan dados de baja).
Y en la tabla cuotas tengo los nombres de los socios y las cantidades mensuales que van pagando.

Tengo que sacar un listado de todas las cuotas de los socios que no estén dados de baja.
Esto se haría muy facilmente con una subconsulta de esta manera:

select nombre from cuotas where nombre in (select nombre from cuotas where fecha_baja is not null);

pero por desgracia la versión de Mysql con la que estoy trabajando no admite subconsultas. Entonces no tengo ni idea de cómo puedo hacerlo. Lo que si estoy seguro es de que sepuede pues es un ejercicio que tengo que hacer para un cursillo. alguien sabe cómo se hace (sin subconsultas=?

un saludo a todos y gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:buscar sin subconsultas

Publicado por Isaías (5072 intervenciones) el 10/04/2006 23:48:09
¿Tampoco soporta el EXISTS?

SELECT <MI CLAUSULA SELECT> WHERE EXISTS(<MI CLAUSULA SELECT>)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:buscar sin subconsultas

Publicado por TeenSpirits (9 intervenciones) el 10/04/2006 23:58:04
me temo que no, ya que eso es también una subconsulta sólo que cambias el operador in por el exists. Tiene que haber otra manera. Pero de todas formas creo que he puesto mal la senencia: sería así:

select cantidad_pagada from cuotas where nombre in (select nombre from cuotas where fecha_baja is not null);

Para explicarme mejor:

Tengo dos tablas:tal que así:

Cuotas: Nombre Cantidad
Socios: Nombre Fecha_baja

Entonces lo que debo es encontrar todos los campos "Cantidad" de los socios que no tengan "Fecha_de_baja". Para esto no se me ocurre otra manera de hacerlo que no sea una subconsulta pero tiene que haberla pues el ejercicio lo pide.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:buscar sin subconsultas

Publicado por Isaías (5072 intervenciones) el 11/04/2006 01:42:40
¿Soporta JOIN?, podrias hacer un LEFT o RIGHT (JOIN).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:buscar sin subconsultas

Publicado por TeenSpirits (9 intervenciones) el 12/04/2006 12:53:41
dudo mucho que lo soporte, pero en todo caso me gustaría intentarlo.

cómo es la sintaxis de join? la verdad es que desconocía esa orden.

gracias x tu ayuda. ;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:buscar sin subconsultas

Publicado por Isaías (5072 intervenciones) el 12/04/2006 16:39:03
SELECT * FROM TABLA1 LEFT JOIN TABLA2 ON TABLA1.COLID = TABLA2.COLID

LEFT JOIN, - Basado en tabla de la izquierda
RIGHT JOIN.- Basado en la tabla de la derecha
FULL JOIN.- Une ambas tablas, aquellos registros que no coincidan, los presenta como NULL.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar