To achando que isso que quero fazer é fácil mas to meio travado…seilá…talvez não seja tão fácil assim…enfim…
Tenho uma tabela lote e uma tabela mensagem.
Um lote possui N mensagens e uma mensagem pertence a um único lote.
Logo a tabela mensagem tem o campo idLote como chave estrangeira.
O que eu quero é pegar todos os lotes que tem todas as suas mensagens com idstatus=1.
Pensei em contar o número total de mensagens por lote e então contar o número de mensagens por lote que tem idstatus =1 e retornar somente os idlotes que tiverem essa condição igual.
Tem muitos registros nestas tabelas? Talvez seja bom complementar o where com mais criterios… tipo uma data…
Execute este trecho separado para ver o que retorna:
SELECT idLote from mensagem WHERE idStatus <> 1 GROUP BY idLote) ;
A intensão é pegar todos os lotes que tenham mensagem com status NAO 1. E depois o select completo vai selecionar os lotes que nao estao nesta lista.
O Group by era para “agrupar” resultados iguais porque como esta lendo a tabela de mensagens podem aparecer numeros de lotes repetidos. Acho que o DISTINCT tambem funcionaria.