En tu caso es un JOIN simple con uso de ORDER BY:
Código SQL:
Ver originalSELECT PP.*
FROM PerfilPuesto PP INNER JOIN PerfilActivo A ON PP.IdPuesto = A.IdPuesto
ORDER BY A.Activo;
De todos modos tienes algunos cuantos errores en la definicion de las columnas, el primero de los cuales es simplemente que ese "(1)" que pusiste al campo "Activo" es simple basura. Puede tener en realidad efectos nocivos.
Esos numeros entre paréntesis para los campos numéricos
no sirven para indicar la cantidad de dígitos. Se usan para otra cosa, y es recomendable
no usarlos, dejando que MySQL les asigne el valor que tienen por default.
Otros campos como estos:
parecen indicar que vas a usarlos para guardar listas de identificadores, o de valores, lo que significaría algo peor. Ese tipo de colecciones están prohibidas en las bases de datos relacionales. Representan uno de los peores errores que se pueden cometer en el diseño de estructura de datos.
Estos otros:
implican que esa tabla está desnormalizada a lo grande. Ese tipo de datos no va en la misma tabla, sino en tablas dependientes (relaciones 1:N), con agregado de tablas fijas paramétricas.
Esto es peor:
Esos datos
no pueden ser VARCHAR. Tienen que ser DECIMAL o INT UNSIGNED, pero
nunca VARCHAR.
Los valores monetarios o cualquier tipo de dato de magnitudes deben ser numéricos.