Subconsultas en SQL

Las subconsultas en SQL permiten anidar consultas o a su vez anidar subconsultas.

Esta clausula select actualiza el campo area contruida a 0.0 de los avalúos (tabla liquidación) que pertenezcan al propietario con nombre que empiece por ABONIA

update liquidacion
set    liquidacion.area_construida = 0
where  liquidacion.anno = 2012
and exists (select 1
            from  predio
            where predio.id = liquidacion.id_predio
            and   predio.vigente = 'S'
            and   predio.nombre like 'ABONIA%'
            )

Esta consulta saca el predio y su último número de recibo (Versión 1)

select
predio.id,
predio.nombre,
recibo.id_proceso,
recibo.numero_recibo
from      predio
left join recibo on (predio.id = recibo.id_predio)
where     recibo.numero_recibo = (select max(recibo_2.numero_recibo) from recibo recibo_2 where recibo_2.id_predio = predio.id)

Esta consulta saca el predio y su último número de recibo (Versión 2)

select
predio.id,
predio.nombre,
recibo.id_proceso,
recibo.numero_recibo
from      predio
left join recibo on (predio.id = recibo.id_predio)
where     recibo.numero_recibo = (select max(recibo.numero_recibo) from recibo where recibo.id_predio = predio.id)

Esta consulta saca el predio y su último número de recibo (Versión 3), también muestra los que no tiene recibo

select
predio.id,
predio.nombre,
recibo.id_proceso,
recibo.numero_recibo
from      predio
left join recibo on (predio.id = recibo.id_predio)
where     recibo.numero_recibo = (select max(recibo.numero_recibo) from recibo where recibo.id_predio = predio.id)
or       (recibo.numero_recibo is null)