PHP SQL: Coincidencia correspondientes datos entre 2 mesas, sin Filtrado de datos en la primera tabla
-
03-10-2019 - |
Pregunta
Tengo 2 tablas. Por el bien de simplicidad 'U' tiene las siguientes columnas
ID de usuario
divisionid
'd' tiene la siguiente:
divisionid
nombrar
No ha creado esta tabla, de lo contrario no tendría este problema. u.DIVISION puede NULL. d.DIVISION no pueden .
Al ejecutar el siguiente crea los datos apropiados, pero también filtra todos los ID de usuario que tiene NULL para que de divisionid. ¿Hay alguna forma todavía muestran todos los ID de usuario es independientemente de su divisionid y si el divisionid no es nulo, a continuación, mostrar el nombre de la división?
"ID de usuario SELECT, d.NAME
Desde U, d
DONDE u.divisionid = d.divisionid
ORDER BY userid "
Solución
Usar una combinación externa:
SELECT userid, d.NAME
FROM u
LEFT OUTER JOIN division d
ON u.divisionid = d.divisionid
ORDER BY userid
Otros consejos
Uso de la Oracle o implícita la sintaxis de combinación implica un INNER JOIN
. Una unión interior Elimina los registros que no cumplen con los criterios.
Una explícita unirse mediante la cláusula JOIN
permite especificar el tipo de unión.
A LEFT OUTER JOIN
mantiene todas las filas de la primera tabla, sin tener en cuenta si hay filas coincidentes en la segunda tabla.
SELECT userid, d.NAME
FROM u
LEFT OUTER JOIN division d
ON d.divisionid = u.divisionid
ORDER BY userid