select kasutaja_nimi, eesnimi, perenimi, r_nimetus, seeria_nr, max(paigalduse_aeg) as paigaldus
from kasutaja ka
right join riistvara ri on ka.id = ri.id
right join r_paigaldus r on ka.id = r.kasutaja_id
group by kasutaja_nimi, eesnimi, perenimi, seeria_nr, r_nimetus;

Output

Esta es la salida, pero necesito que se cambien esos valores. Tengo claves primarias de ID para ambos: kasutaja y riistvara, pero no sé cómo hacer coincidir kasutaja ID 1 con riistvara ID 2 y viceversa.

Kasutaja and riistvara

Y la salida debería ser así: ingrese la descripción de la imagen aquí

Los campos R_NIMETUS y SEERIA_NR son diferentes en mi salida de lo que obtengo con mi código.

-1
FeroxFelez 3 mar. 2021 a las 12:58

1 respuesta

La mejor respuesta

No puede cruzar los datos porque no tiene un vínculo lógico entre dos tablas.

Solo tiene una solución, debe cambiar la estructura de su tabla:

Escenario 1

Si tiene una relación padre-hijo, agregue una clave externa en la tabla secundaria

Escenario 2

Si tiene una relación n: m, cree una tabla intermedia con fks a la tabla principal y secundaria.

Entonces en su consulta puede usar operaciones JOIN para mostrar correctamente sus resultados

0
Joe Taras 3 mar. 2021 a las 10:03