Se eu tenho duas tabelas DB_CARRO e DB_MONTADORA (exemplos)
DB_CARRO se relaciona com DB_MONTADORA um pra um. Porém na tabela DB_MONTADORA existem alguns relacionamentos quebrados, ou seja, existem registros pra ID_DB_CARRO que não existem na tabela Db_CARRO.
Fiquei confuso, você tá querendo achar montadoras que não tenham fabricado nenhum carro (ou seja montadoras que não tenham registros correspondentes na tabela de carro)?
Se for isso, poderia ser assim:
select montadora.*
from montadora left join carro on montadora.id_montadora = carro.id_montadora
where carro.id_carro is null
ou mesmo testado com uma subquery no where:
select * from montadora where
(select count(1) from carro where carro.id_montadora = montadora.id_montadora)=0
EDITs: para ajeitar as tags
Jarf
Não deu pra entender muito bem. Seja um pouco + claro =D
Você tem ID_DB_CARRO em montadora, mas na propria tabela carro vc nao tem ID_DB_CARRO? :roll:
rbamartins
Amigo, não entendi muito bem.
Mas, se em DB_MONTADORA você tem um valor para a chave estrangeira @ID_DB_CARRO e esse valor não existe em DB_CARRO há uma falha e esse relacionamento não existe.
Explique mais um pouco seu problema.
Giulliano
rbamartins:
Amigo, não entendi muito bem.
Mas, se em DB_MONTADORA você tem um valor para a chave estrangeira @ID_DB_CARRO e esse valor não existe em DB_CARRO há uma falha e esse relacionamento não existe.
Explique mais um pouco seu problema.
O meu problema é exatamente esse. O banco não garante a integridade e existem valores para essa FK (@ID_DB_CARRO) que não existem na tabela DB_CARRO
Consegui criar a seguinte pesquisa…acho q é isso !!!
SELECT M.ID_DB_CARRO FROM DB_MONTADORA M
WHERE NOT EXISTS
(SELECT C.ID_DB_CARRO FROM DB_CARRO C WHERE M.ID_DB_CARRO = C.ID_DB_CARRO)
rbamartins
Giulliano:
rbamartins:
Amigo, não entendi muito bem.
Mas, se em DB_MONTADORA você tem um valor para a chave estrangeira @ID_DB_CARRO e esse valor não existe em DB_CARRO há uma falha e esse relacionamento não existe.
Explique mais um pouco seu problema.
O meu problema é exatamente esse. O banco não garante a integridade e existem valores para essa FK (@ID_DB_CARRO) que não existem na tabela DB_CARRO
Consegui criar a seguinte pesquisa...acho q é isso !!!
SELECT M.ID_DB_CARRO FROM DB_MONTADORA M
WHERE NOT EXISTS
(SELECT C.ID_DB_CARRO FROM DB_CARRO C WHERE M.ID_DB_CARRO = C.ID_DB_CARRO)
Tudo bem.
Você vai conseguir saber onde tem um e não tem outro.
Mas, iai o que vai fazer com esses ID_DB_CARRO de MONTADORA que não existem em DB_CARRO ????
Giulliano
vou ter q apagar ou passar pra null…sei lá qq coisa que não impeça o hibernate de fazer as consultas…
não fui eu quem fez as tabelas viu…não pensem q estou querendo tapar o sol com a peneira, só estou resolvendo ‘bugs’ …