Cita:
Empezado por juanjo123
...necesito que se muestren los que tengan tambien "a.orden=0"...
|
¿Quieres los que se cumplan la relación, mas los que estén en cero?
En ese caso se me ocurre que podrías hacer dos consultas con un union
Código SQL
[-]
SELECT b.codcontrato, a.orden, a.nif, CONCAT(a.apellido1,' ', a.apellido2,', ',a.nombre) as nombrecompleto,
b.fechavencont, b.fechabaja
FROM personal a
INNER JOIN contratos b on a.orden=b.orden
WHERE a.codempresa='301'
UNION ALL
SELECT NULL, orden, nif, CONCAT(apellido1,' ', apellido2,', ',nombre) as nombrecompleto,
NULL, NULL
FROM personal
WHERE a.codempresa='301'
ORDER BY 2 asc
Ahora si lo que quieres son todos los registros de la tabla "personal" sin importar si estos tienen o no un "contrato", lo que debes hacer es un LEFT JOIN:
Código SQL
[-]
SELECT b.codcontrato, a.orden, a.nif, CONCAT(a.apellido1,' ', a.apellido2,', ',a.nombre) as nombrecompleto,
b.fechavencont, b.fechabaja
FROM personal a
LEFT JOIN contratos b on a.orden=b.orden
WHERE a.codempresa='301'
ORDER BY a.orden asc
Saludos!