Cómo convertir una subconsulta SQL en una unión
Tengo dos tablas con una relación 1: n: "contenido" y "datos de contenido versionados" (por ejemplo, una entidad de artículo y todas las versiones creadas de ese artículo). Me gustaría crear una vista que muestre la versión superior de cada "contenido".
Actualmente uso esta consulta (con una simple subconsulta):
SELECT t1.id, t1.title, t1.contenttext, t1.fk_idothertable t1.version FROM mytable as t1 WHERE (version = (SELECT MAX(version) AS topversion FROM mytable WHERE (fk_idothertable = t1.fk_idothertable)))
La subconsulta es en realidad una consulta a la misma tabla que extrae la versión más alta de un elemento específico. Tenga en cuenta que los elementos versionados tendrán el mismo fk_idothertable.
En SQL Server intenté crear unindexed view de esta consulta, pero parece que no puedo porque las subconsultas no están permitidas en vistas indexadas. Entonces ... esta es mi pregunta ... ¿Puede pensar en una forma de convertir esta consulta en algún tipo de consulta con JOINs?
Parece que las vistas indexadas no pueden contener:
subconsultasexpresiones de tabla comunes tablas derivadasHAVING cláusulasEstoy desesperado. Otras ideas son bienvenidas :-
¡Muchas gracias