Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > Mysql

Respuesta
 
Herramientas Desplegado
Antiguo 21-mar-2008, 04:28   #1 (permalink)
Gores ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2008
Mensajes: 4
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
Gores está desconectado   Responder Citando
Antiguo 21-mar-2008, 05:47   #2 (permalink)
gnzsoloyo tiene algunos puntos positivos de karma
 
Avatar de gnzsoloyo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 824
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.
gnzsoloyo está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 06:24.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93