Ayuda con una consulta con tablas relacionadas mysql

Iniciado por mark182, 17 Noviembre 2009, 18:19 PM

0 Miembros y 1 Visitante están viendo este tema.

^Tifa^

Disculpa mark182, hice un punto de referencia sobre optimizacion de una consulta en una DB. (Hare una mini introduccion mas extendida de ventajas y desventajas de optimizacion en una base de datos de MySQL para pegarle una chinchetita y asi puedan conocer de mejor forma esta funcionalidad tan olvidada entre programadores webs  ;) asi el tema no sera tan avanzado como lo vez por el momento.)

Ok, me temo que no podemos ayudarte mas extendido sino sabemos que informacion tienen las tablas de tu base de datos, ni que consulta tu estas haciendo para obtener esos datos. Mi pregunta era, que consulta SQL es que estas realizando para obtener los datos que pides???  si tus tablas realmente tienen registros cualquiera de las consultas anteriormente posteadas aqui deben retornarte un valor (Al menos dentro del motor, esto es individual de lo que tengas en PHP)

Segun las tablas que colocaste de ejemplo, hice una imitacion de las tuyas con 3 filas cada una (Como podras ver en el ejemplo):

Código (sql) [Seleccionar]


mysql> select * from usuarios;
+-------+---------+----------------------------------+
| id_us | usuario | contraseña                       |
+-------+---------+----------------------------------+
|     1 | coco    | 202cb962ac59075b964b07152d234b70 |
|     2 | shersy  | 202cb962ac59075b964b07152d234b70 |
|     3 | xoxo    | 202cb962ac59075b964b07152d234b70 |
+-------+---------+----------------------------------+
3 rows in set (0.00 sec)                               

mysql> select * from alumnos;
+---------+---------+---------+
| id_alum | nombres | colegio |
+---------+---------+---------+
|       1 | Juan    | Perez   |
|       2 | Maria   | Mendez  |
|       3 | Matias  | Lopez   |
+---------+---------+---------+
3 rows in set (0.00 sec)       




De igual manera viste como obtuve el campo colegio solamente con el nombre de usuario (Como lo andas solicitando):

Código (sql) [Seleccionar]


mysql> SELECT *  FROM alumnos INNER JOIN usuarios WHERE usuario = 'coco' AND usuarios.id_us = alumnos.id_alum; 

+---------+---------+---------+
| id_alum | nombres | colegio |
+---------+---------+---------+
|       1 | Juan    | Perez   |



si te fijas en la tabla usuarios al usuario 'coco' le corresponde el id_us = 1 por ende retornamos la info de la tabla alumnos correspondiente a id_alum = 1, en tu caso deberia ser un SELECT colegio en vez de SELECT * (ALL) y funciona perfectamente dentro del motor (Puedes probarlo conectandote individualmente a MySQL por MS-DOS si estas en Windows o una Terminal si estas en Linux y realizando la mismita consulta que se te ha publicado aca) Si obtienes los datos que buscas dentro del motor, pero no lo obtienes a traves de web... me temo que el problema estaria dentro de la programacion de tu codigo PHP y no de la manera de realizar tu consulta SQL en si.

mark182

Hice la consulta que me plantearon y me dio la respuesta que buscaba. Haci que ire a molestar al foro de PHP aver si encuentran el problema.

Muchisimas gracias ^TiFa^ y sempus. Valió su ayuda. Que tengan buen día.

^Tifa^