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

[SOLUCIONADO] ¿Por qué mi consulta devuelve puro NULL?

Estas en el tema de ¿Por qué mi consulta devuelve puro NULL? en el foro de Bases de Datos General en Foros del Web. Hola! Estoy siguiendo el tutorial de este muchacho para hacer pruebas con claves foráneas. Ok, tengo 3 tablas, así: Como ven, el campo ID de ...
  #1 (permalink)  
Antiguo 17/05/2015, 17:35
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 1 mes
Puntos: 22
Pregunta ¿Por qué mi consulta devuelve puro NULL?

Hola!

Estoy siguiendo el tutorial de este muchacho para hacer pruebas con claves foráneas.

Ok, tengo 3 tablas, así:


Como ven, el campo ID de tabla cliente corresponde con el campo CLIENTE de la tabla compra.

Existen ya algunos registros en ambas tablas, es decir, hay clientes que han comprado algún artículo. Pero cuando ejecuto esta consulta:
Código MySQL:
Ver original
  1. SELECT a.id, b.cliente
  2. FROM cliente a, compra b
  3. WHERE a.id = b.cliente

veo, mediante las herramientas de Chrome, la siguiente respuesta:
Código json:
Ver original
  1. {
  2.     "current_field":null,
  3.     "field_count":null,
  4.     "lengths":null,
  5.     "num_rows":null,
  6.     "type":null
  7. }

¿Alguna idea de por qué todo es NULL, como si no hubiese registros coincidentes entre las tablas A y B?

Saludos!
  #2 (permalink)  
Antiguo 17/05/2015, 17:40
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
Respuesta: ¿Por qué mi consulta devuelve puro NULL?

Verifica los datos de las dos tablas.
Solo puede devolver NULL si no hay registros coincidentes entre ambas, para la relación Indicado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 17/05/2015, 20:45
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 1 mes
Puntos: 22
Pregunta Respuesta: ¿Por qué mi consulta devuelve puro NULL?

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Verifica los datos de las dos tablas...
Hola, maestro.

Ya revisé y a mí nada me parece extraño.
Realicé nuevas pruebas, pero al ver que siempre devolvía NULL, me animé incluso a desinstalar mi XAMPP, no fuera que hay algo malo (días antes estuve manoseando el php.ini).

Me instalé EasyPHP, nuevecito, además, ya no corrí la consulta anterior: left join, sino un simple select a la tabla cliente:
Código SQL:
Ver original
  1. SELECT * FROM cliente

El resultado fue el mismo: todo NULL, .

Imagino, no sé, que este problema ha de relacionarse con estar trabajando con claves foráneas, con crear y eliminar las relaciones con el diseñador. Porque es lo único novedoso que he hecho con esta BD.

Voy a crear desde cero la BD y hacer pruebas a cada paso, para ver en qué momento empiezan a verse esos NULL.

Pero mientras hago esto, gnzsoloyo, y en base a esta nueva información que comento, me gustaría conocer tu opinión: ¿tienes alguna idea, aunque sea la más peregrina, de por qué un simple SELECT no devuelve nada?


Saludos!

Última edición por berkeleyPunk; 17/05/2015 a las 20:59
  #4 (permalink)  
Antiguo 17/05/2015, 21:24
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
Respuesta: ¿Por qué mi consulta devuelve puro NULL?

Vamos a ver si se entiende...
Si esto:
Código SQL:
Ver original
  1. SELECT * FROM clientes
No devuelve datos solo puede ser porque la tabla esta vacía..
Si esto otro no devuelve datos:
Código SQL:
Ver original
  1. SELECT a.id, b.cliente
  2. FROM cliente a, compra b
  3. WHERE a.id =b.cliente
No devuelve datos, solo puede ser:
- Las tablas están vacías.
- Al menos una tabla esta vacía.
- No hay valores en la columna cliente de la tabla compra que existan en la columna id de la tabla cliente.

No hay mas opciones...

¿Como hiciste para insertar datos en las tablas? ¿Como verificaste que realmente se hubiesen insertado?
¿Tuviste en cuenta que al hacer que una columna sea FK, no hay inserciones "automágicas" de datos, sino que a la tabla relacional (compra), debes insertarle tu mismo los registros, con las respectivas PK de las otras tablas?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 24/05/2015, 15:50
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 1 mes
Puntos: 22
De acuerdo Respuesta: ¿Por qué mi consulta devuelve puro NULL?

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Vamos a ver si se entiende...
Se entiende perfectamente.

Perdón por responder tan tarde. Estuve todo este tiempo arreglando el problema que me hizo abrir este post, y otros más que salieron al realizar mi 1ra prueba de un mini-sistema de registro y compras con AJAX, JSON y claves foráneas.

Todo está solucionado, . Logré hacer que un cliente se registre, compre y vea sus compras pasadas.

¿Por qué las consultas informaban que no había registros, cuando sí había? Porque había un error estúpido en mi PHP, . Nada que ver con MySQL ni las bases de datos.

Como no puedo postear PHP debido a las reglas del foro, los dirijo a otro tema que abrí sobre mi prueba de este sistema de registro y compras, ya solucionado.

Saludos maestro, y hasta pronto!

Etiquetas: mysql
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 05:26.