Es posible que haya un error de comprensión sobre lo que devuelve una consulta cuando realizas una relación entre tres tablas donde una de ellas es la representación de una relación N:N entre dos entidades.
Cuando generas una consulta tal que relacione esas tablas, los valores de la tabla izquierda (la tabla base de la consulta9,
siempre se repetirán una vez por cada coincidencia entre esa tabla y la segunda. Eso es inevitable, porque lo que no se repite
es el conjunto completo de valores.
En otras palabras:
Si tenemos las tablas que indicas:
Código MySQL:
Ver originalQuery OK, 0 rows affected (0.05 sec)
Query OK, 0 rows affected (0.06 sec)
Query OK, 0 rows affected (0.01 sec)
Query OK, 0 rows affected (0.05 sec)
-> (1, 'BANMEDICA'),
-> (2, 'SINSALUD'),
-> (3, 'CORMENA'),
-> (4, 'CORMENAL');
Query OK, 4 rows affected (0.00 sec)
-> (1, 'LAS LILAS'),
-> (2, 'LAS FLORES');
Query OK, 2 rows affected (0.00 sec)
-> (2, 1),
-> (3, 1);
Query OK, 2 rows affected (0.00 sec)
Podemos hacer la consulta con LEFT JOIN o INNER JOIN.
En el primer caso tendremos:
Código MySQL:
Ver original -> I.ID_ISAPRES,
-> I.VAL_ISAPRES,
-> IFNULL(C.ID_CLINICA
, '') ID_CLINICA
, -> IFNULL(C.VAL_CLINICA
, '') VAL_CLINICA
-> prestacion P
ON I.ID_ISAPRES
= P.ID_ISAPRES
-> INNER JOIN clinica C
ON P.ID_CLINICA
= C.ID_CLINICA
; +------------+-------------+------------+-------------+
| ID_ISAPRES | VAL_ISAPRES | ID_CLINICA | VAL_CLINICA |
+------------+-------------+------------+-------------+
| 2 | SINSALUD | 1 | LAS LILAS |
| 3 | CORMENA | 1 | LAS LILAS |
+------------+-------------+------------+-------------+
En el segundo caso será:
Código MySQL:
Ver original -> I.ID_ISAPRES,
-> I.VAL_ISAPRES,
-> IFNULL(C.ID_CLINICA
, '') ID_CLINICA
, -> IFNULL(C.VAL_CLINICA
, '') VAL_CLINICA
-> prestacion P
ON I.ID_ISAPRES
= P.ID_ISAPRES
-> LEFT JOIN clinica C
ON P.ID_CLINICA
= C.ID_CLINICA
; +------------+-------------+------------+-------------+
| ID_ISAPRES | VAL_ISAPRES | ID_CLINICA | VAL_CLINICA |
+------------+-------------+------------+-------------+
| 1 | BANMEDICA | | |
| 2 | SINSALUD | 1 | LAS LILAS |
| 3 | CORMENA | 1 | LAS LILAS |
| 4 | CORMENAL | | |
+------------+-------------+------------+-------------+
Sobre la base de esto, aclárame qué es lo que realmente quieres representar, y cuáles "repeticiones" son las que mencionas, porque no se termina de entender.
Nota: En tu ejemplo, tienes repetidos los datos de una de las tablas, lo que se considera una inconsistencia gravísima.
Nota 2: La próxima vez usa un programa de diseño asistido para hacer el diagrama. Algo como el MySQL Workbench o el Navicat. Será mucho claro para ver las relaciones y las entidades, y además tendrás una herramienta apropiada para trabajar.