2 join en una misma tabla a un mismo campo

Iniciado por N4X, 3 Febrero 2010, 16:11 PM

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

N4X

bueno.. como no vengo yo a dar problemas ....

Tengo una tabla de comentarios que guarda entre otras cosas la id del autor y la id del moderador que acepta dicho comentario...

bien yo hago un join a la tabla de usuarios para ver el real_name del usuario

pero no tengo idea como hacer el join a la tabla para ver también el real_name del moderador...

Código (sql) [Seleccionar]
mysql> describe web_news_comments;
+------------+-----------------------+------+-----+-------------------+----------------+
| Field      | Type                  | Null | Key | Default           | Extra       |
+------------+-----------------------+------+-----+-------------------+----------------+
| id_com     | int(10) unsigned      | NO   | PRI | NULL              | auto_increment |
| id_new     | int(10) unsigned      | NO   | MUL | NULL              |       |
| autor      | mediumint(8) unsigned | NO   | MUL | NULL              |       |
| comentario | varchar(255)          | NO   |     | NULL              |       |
| hora       | timestamp             | NO   |     | CURRENT_TIMESTAMP |       |
| id_mod     | mediumint(8) unsigned | YES  | MUL | NULL              |       |
+------------+-----------------------+------+-----+-------------------+----------------+


y la consulta que tengo ahora es:

Código (sql) [Seleccionar]
mysql> SELECT c.id_com as id, m.real_name as autor, c.comentario, c.hora, m.real
_name as id_mod FROM web_news_comments c, smf_members m WHERE id_new = 14 AND id_mod is no
t null AND c.autor = m.id_member;
+----+-------+------------+---------------------+-----------+
| id | autor | comentario | hora                | id_mod |
+----+-------+------------+---------------------+-----------+
|  9 | mod   | asdas      | 2010-02-03 15:42:06 | mod       |
+----+-------+------------+---------------------+-----------+
1 row in set (0.00 sec)


como es normal me saca en autor e id_mod el mismo nombre cuando son distintos.. solo que no he sabido seguirlo...

pd. la tabla smf_members es muy larga pero por decir algo seria

id - login_name - real_name

saludos
nax

ssccaann43 ©

Presumo que el real_name del usuario y el real_name del moderador provienen de 2 tablas distintas... Por tal motivo puedes hacer lo siguiente...

Ejecutas la consulta donde listas inicialmente a los usuarios. (Creas una vista)

luego ejecutas otra consulta donde listas a los moderadores. (Creas una vista)

y por ultimo un UNION...! (Creas la última vista con las 2 vistas anteriores)

Espero me comprendas...! Es lo que yo haría y no me complico tanto la vida...!
- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"

N4X

misma tabla mismo campo no hay mas de lo que he listado

ssccaann43 ©

A ver, ve si esto funciona...

Código (sql) [Seleccionar]

Select C.id_com,m.real_name AS autor,c.comentario, c.hora,
(Select DISTINCT m.real_name from m where m.id_member=c.id_mod) as Nombre_mod from web_news_comments C,
smf_members m WHERE id_new = 14 AND c.autor = m.id_member;
- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"

N4X

le he agregado dos cosillas porque daba error en la tabla pero funciona perfectamente gracias

query
Código (sql) [Seleccionar]
SELECT C.id_com,m.real_name AS autor,c.comentario, c.hora,
(SELECT DISTINCT m.real_name FROM smf_members m WHERE m.id_member=c.id_mod) AS Nombre_mod FROM web_news_comments c,
smf_members m WHERE id_new = 14 AND c.autor = m.id_member AND c.id_mod IS NOT NULL;


salida:

Código (sql) [Seleccionar]
+--------+-------+------------+---------------------+------------+
| id_com | autor | comentario | hora                | Nombre_mod |
+--------+-------+------------+---------------------+------------+
|      9 | mod   | asdas      | 2010-02-03 15:42:06 | global     |
+--------+-------+------------+---------------------+------------+
1 row in set (0.00 sec)

ssccaann43 ©

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"

^Tifa^

Lol otra vez llegue tarde  :xD   :xD   :xD 

Es que estoy en examenes y eso me limita muchisimo el tiempo  :-\

Pero me alegro que otros usuarios esten aportando a la causa  ;D

:ohk<any>

Cita de: ^TiFa^ en  3 Febrero 2010, 21:47 PM
Lol otra vez llegue tarde  :xD   :xD   :xD 

Es que estoy en examenes y eso me limita muchisimo el tiempo  :-\

Pero me alegro que otros usuarios esten aportando a la causa  ;D

Clonemos a ^TiFa^  :xD :xD
Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.

ssccaann43 ©

Jajaja... No importa si yo me quedo con el clon?
- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"

^Tifa^