Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Mysql (http://www.forosdelweb.com/f86/)
-   -   Error al hacer la consulta SQL (http://www.forosdelweb.com/f86/error-hacer-consulta-sql-568019/)

Gores 21/03/2008 04:28

Error al hacer la consulta SQL
 
Hola,

Tengo que hacer unas consultas SQL y en una de ellas no me lo permite. La consulta de selección es la siguiente:

SELECT HABDNI, HABNombre FROM TBHabitante, RELSocio, TBAsociacion WHERE TBAsociacion.ASONombre = ”Cáritas” AND TBSocio.SOCCargo = “voluntario” AND TBHabitante.HABDNI = RELSocio.HABDNI AND TBAsociacion.ASONombre = RELSocio.ASONombre;

Y despues al darle a vista me aparece lo siguiente:

Puede que el campo 'HABDNI' especificado haga referencia a más de una tabla de las mostradas en la cláusula FROM de la instrucción SQL.

Me podrian decir que tengo que hacer para corregirlo?

Saludos

gnzsoloyo 21/03/2008 05:47

Re: Error al hacer la consulta SQL
 
El tema es así:
La consulta:
Código:

SELECT HABDNI, HABNombre
FROM TBHabitante, RELSocio, TBAsociacion
WHERE TBAsociacion.ASONombre = ”Cáritas”
    AND TBSocio.SOCCargo = “voluntario”
    AND TBHabitante.HABDNI = RELSocio.HABDNI
    AND TBAsociacion.ASONombre = RELSocio.ASONombre;

Está pidiendo por los campos HABDNI, HABNombre, el campo HABNombre existe en una sola tabla (Supongo que Habitante), pero el campo HABDNI debe estar en al menos dos tablas distintas (tal vez uno como clave), pero como lo que haces es un JOIN, en la tabla aparecen los campos de las dos tablas, con el mismo nombre.
Si lo que quieres hacer es eliminar una columna de la tabla lo que tienes que poner es:
Código:

FROM TBHabitante H JOIN RELSocio S ON H.HABINI = S.HABINI JOIN TBAsociacion A ON H.HABINI = A.HABINI
suponiendo que el campo está en todas. Sino, habría que hacer algo así:

SELECT H.HABDNI, H.HABNombre
FROM TBHabitante H, RELSocio S, TBAsociacion A
WHERE TBAsociacion.ASONombre = ”Cáritas”
AND TBSocio.SOCCargo = “voluntario”
AND TBHabitante.HABDNI = RELSocio.HABDNI
AND TBAsociacion.ASONombre = RELSocio.ASONombre;

[/code]
O sea, acotar al dato de salida a una sola tabla.


La zona horaria es GMT -6. Ahora son las 18:00.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.