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.