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

Error al hacer la consulta SQL

Estas en el tema de Error al hacer la consulta SQL en el foro de Mysql en Foros del Web. 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, ...
  #1 (permalink)  
Antiguo 21/03/2008, 04:28
 
Fecha de Ingreso: marzo-2008
Mensajes: 4
Antigüedad: 16 años, 1 mes
Puntos: 0
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
  #2 (permalink)  
Antiguo 21/03/2008, 05:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
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.
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 17:33.