Hola,
Cita:
Iniciado por Maru77
Hackmanc, el nro_rifa NO guarda el id_cliente, me expresé mal, pero es como una especie de código o identificación ya que es un número que no se repite.
El problema es que ese pequeño detalle hace que una consulta no funcione, y digo no funcione completamente, dando resultados vacíos o erróneos completamente.
Posiblemente,
Código SQL:
Ver originalSELECT ...
FROM cobranzas
INNER JOIN cobradores ON cobranzas.cobrador = cobradores.codigo_cobrador
INNER JOIN clientes ON cobranzas.nro_rifa = clientes.nro_rifa
WHERE cobradores.id_cobrador = 1
Si le das vuelta a la consulta, poniendo cobranzas como la tabla primaria, resulta mucho mas simple comprender el problema y posiblemente se te va a ser mas fácil resolverlo. Una vez resultas el problema de saber si el ID (nro_rifa) que estas guardando en cobranzas corresponde al nro_rifa o id_cliente en la tabla clientes.
Eso sucede porque estás usando 'surrogate keys'. Tienes un ID para identificar el registro en la tabla, pero al mismo tiempo tienes un código. Como supongo (según lo que comentaste) que se hizo la relación por la 'natural key', posiblemente te va a funciona la consulta que mostré, pero va a depender completamente de como se haya hecho verdaderamente la relación en la base de datos.
Basados en el hecho que nro_rifa NO guarda el ID del cliente, entonces esta es la relación,
Código SQL:
Ver originalINNER JOIN clientes ON cobranzas.nro_rifa = clientes.nro_rifa
Con el problema que entonces en las relaciones se usa la 'natural key', eso normalmente es un problema de diseño.
Saludos,