[Pregunta]: ¿Cómo puedo hacer un INNER JOIN bajo una condicional?

Iniciado por Leguim, 20 Octubre 2021, 06:34 AM

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

Leguim

Hola,

tengo un campo "id_admin" (tabla x) que está referenciado con un campo "id_usuario" (tabla de usuarios)

Pero id_admin admite dos tipos de valores, podría tener el valor NULL o el valor de id_usuario, entonces tengo la siguiente consulta:
Código (php) [Seleccionar]

SELECT X.campo_1, X.id_admin, X.campo_3, U.id_usuario, U.nombre, U.avatar FROM tabla_x X INNER JOIN usuarios U ON X.id_admin = U.id_usuario;


Justo en donde dice ON X.id_admin = U.id_usuario yo quería saber si hay forma de que haga esa referencia INNER JOIN si y sólo si el id_admin is not null.

DtxdF

@Leguim

La cuestión está en que no deberían mostrarse los NULLs, ya que no coinciden, al menos en un INNER JOIN, lo cual, realizando lo contrario a lo que mencionas, sí puede pasar con un LEFT JOIN o RIGHT JOIN. En suma, tal parece que está bien. También podrías indagar sobre IS NULL, IS NOT NULL, porque quizá te sean de utilidad.

~ DtxdF

Leguim

Hola!

Probé con LEFT JOIN y parece que todo andaría correcto, pero para mi caso sería el LEFT JOIN o el RIGHT JOIN..? o sería básicamente lo mismo? (que no creo, debería haber una diferencia)