Dúvida SQL

2 respostas
mamangava

Boa tarde galera,

tow com um problema aqui que é o seguinte.
Eu tenho 3 classes: pre_runin, runin e acomp_trius.

acomp_trius


|acomp_id | acomp_rap |
|________|__________|

pre_runin


|pre_acomp_id_fk | pre_situacao | pre_data |
|||_____|

runin


|runin_acomp_id_fk | runin_situacao | runin_data |
|||_____|

O qual pre_acomp_id_fk e runin_acomp_id_fk são Foreign Keys de acomp_id na tabela acomp_trius.
os campos situacao das duas tabelas sao do tipo boolean…

O problema é: eu preciso fazer uma consulta que teste se o campo situacao da tabela pre_runin é verdadeiro E se o campo situacao da tabela runin é false OU nulo, só então verificar se o campo pre_acomp_id_fk é igual ao acomp_id pra poder mandar ordenar pelo campo acomp_rap.

Entenderam ou compliquei demais?!?!

Agradeço pela ajuda desde já.

Flwss galera.

2 Respostas

pmlm

E queres os resultados das duas tabelas?

Os “true” de pre_runin mais os “false” ou null de runin, ordenados todos por acomp_rap? É isso?

rock

Também não tenho certeza se entendi. Tenta algo parecido com isto:

SQL:

SELECT * FROM acomb_trius a INNER JOIN runin r ON a.acomp_id = r.runin_acomp_id_fk LEFT JOIN pre_runin p ON a.acomp_id = p.acomp_id WHERE r.runin_situacao = true AND (p.pre_situacao IS NULL or p.pre_situacao = false) ORDER BY a.acomp_id

HQL:

SELECT * FROM Acomp a LEFT JOIN a.preRunin AS p WHERE a.runin.situacao = true AND (p IS NULL or p.situacao = false) ORDER BY a.id

:?:

Criado 30 de agosto de 2011
Ultima resposta 30 de ago. de 2011
Respostas 2
Participantes 3