/ / Unirse a la izquierda con la tabla por grupo de la derecha? - sql, group-by, external-join

¿Unión externa izquierda con grupo por grupo de derecha? - sql, group-by, external-join

Tengo dos mesas, L y R.

Quiero tener un Left Outer join Entre L con cada grupo de filas en R.

Más claramente, todas las filas en la tabla de la izquierda, deben estar en el conjunto de resultados para cada grupo de filas de la derecha.

¿Cuál es la mejor consulta en SQL?

Respuestas

0 para la respuesta № 1

Lo resuelvo por CROSS JOIN operador.

tabla L: enter image description here

Tabla R: enter image description here

Mi consulta: declare @userid int set @userid = null

 SELECT T.Id, T.Name,T.UserId,R.Val
FROM
(
SELECT L.Id, L.Name,R.UserId
FROM
(SELECT DISTINCT UserId FROM R ) R
CROSS JOIN  L
)T

LEFT OUTER JOIN R
ON (T.Id = R.DayId AND T.UserId = R.UserId)
where @userid is null or T.userid=@userid

y el resultado: enter image description here