INNER JOIN misma table

Estoy tratando de get algunas filas de la misma table. Es una tabla de usuario: el usuario tiene user_id y user_parent_id .

Necesito get la fila user_id y la fila user_parent_id . He codificado algo como esto:

 SELECT user.user_fname, user.user_lname FROM users as user INNER JOIN users AS parent ON parent.user_parent_id = user.user_id WHERE user.user_id = $_GET[id] 

Pero no muestra los resultados. Quiero mostrar el logging del usuario y su logging principal.

Creo que el problema está en tu condición de JOIN .

 SELECT user.user_fname, user.user_lname, parent.user_fname, parent.user_lname FROM users AS user JOIN users AS parent ON parent.user_id = user.user_parent_id WHERE user.user_id = $_GET[id] 

Editar : Probablemente deberías usar LEFT JOIN si hay usuarios sin padres.

Tal vez este debería ser el seleccionado (si entiendo la pregunta correctamente)

 select user.user_fname, user.user_lname, parent.user_fname, parent.user_lname ... As before 

Su consulta debería funcionar bien, pero debe usar el alias parent para mostrar los valores de la tabla principal de esta manera:

 select CONCAT(user.user_fname, ' ', user.user_lname) AS 'User Name', CONCAT(parent.user_fname, ' ', parent.user_lname) AS 'Parent Name' from users as user inner join users as parent on parent.user_parent_id = user.user_id where user.user_id = $_GET[id]; 

También puedes usar UNION como

 SELECT user_fname , user_lname FROM users WHERE user_id = $_GET[id] UNION SELECT user_fname , user_lname FROM users WHERE user_parent_id = $_GET[id] 

No sé cómo se crea la tabla, pero intenta esto …

 SELECT users1.user_id, users2.user_parent_id FROM users AS users1 INNER JOIN users AS users2 ON users1.id = users2.id WHERE users1.user_id = users2.user_parent_id 
    Intereting Posts