Mi pregunta es bastante similar a Restricting a LEFT JOIN, con una variación.Eliminar duplicados de IZQUIERDA UNIÓN EXTERNA
Suponiendo que tengo una tabla SHOP y otra tabla UBICACIÓN. La ubicación es una especie de tabla secundaria de la tabla SHOP, que tiene dos columnas de interés, una es una clave de división (llamándola simplemente KEY) y un número de "SHOP". Esto coincide con el Número "NO" en la tabla SHOP.
probé este externa izquierda:
SELECT S.NO, L.KEY
FROM SHOP S
LEFT OUTER JOIN LOCATN L ON S.NO = L.SHOP
pero yo estoy haciendo una gran cantidad de duplicados, ya que hay muchos lugares que pertenecen a una sola tienda. Quiero eliminarlos y solo obtener una lista de entradas de "compras, llaves" sin duplicados.
los datos son correctos, pero los duplicados aparecen como sigue:
SHOP KEY
1 XXX
1 XXX
2 YYY
3 ZZZ
3 ZZZ etc.
Me gustaría que los datos que aparecerá de esta forma:
SHOP KEY
1 XXX
2 YYY
3 ZZZ etc.
mesa SHOP:
NO
1
2
3
UBICACIÓN tabla:
LOCATION SHOP KEY
L-1 1 XXX
L-2 1 XXX
L-3 2 YYY
L-4 3 YYY
L-5 3 YYY
(Oracle Database 10g)
No debería recibir ningún duplicado, aunque, como dijo, puede obtener más de una clave para una tienda si tiene más de un registro de ubicación para la tienda. Por favor explique o dé un ejemplo de lo que quiere decir con "duplicado". –
@Marcus Al principio pensé lo mismo, pero supongo que varias ubicaciones pueden tener la misma clave de división. –
@Marcus & Martin: ah, no creo haber dejado esto en claro. Sí. Varias ubicaciones pueden tener y tienen una misma clave de división. (Estrictamente hablando, divnkey es el padre de la tienda. Así que la jerarquía es como esta Divnkey> Tienda> ubicación). Intento rellenar la tabla de la tienda con los datos de clave de división apropiados. Puede sonar extraño, pero es un proceso de una sola vez y estaba tratando de generar secuencias de comandos de actualización para la tabla SHOP a partir de los datos de la tabla LOCATION, a través de un comando seleccionar 'update shop set divnkey = ....'. No quería complicar la pregunta, así que ponga una simple selección. –