Si tienes un valor usado como clave en NULL, tienes un problema de defición de tablas o bien no estás usando tablas InnoDB sino MyISAM y no estás validando los datos entrantes.
En todo caso, tu esquema debería responder a esto:
Cita: 1. Una venta pertenece a un cliente, por lo que debe llevar la clave del cliente.
2. Una venta es realizada por un un empleado, por lo que debe llevar el id del empleado
Si esto se cumple, no debería haber ventas que no tuviesen los dos campos, y por tanto esta consulta debería devolver los datos correctamente:
Código sql:
Ver originalSELECT
CONCAT(c.first_name,' ',c.surname) Cliente,
s.VALUE Compra,
CONCAT(sr.first_name,' ',sr.surname)
FROM sales s
INNER JOIN sales_rep sr ON s.code = sr.employee_number
INNER JOIN customer c ON s.id = c.id;
Esto si y sólo si
sales.code corresponde al identificador del vendedor, y
sales.id al del cliente.