PHP SQL: Coincidencia correspondientes datos entre 2 mesas, sin Filtrado de datos en la primera tabla

StackOverflow https://stackoverflow.com/questions/2875835

  •  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 "

¿Fue útil?

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top