stradale
20-05-2008, 12:03
Viva o/
Tenho 2 tabelas:
Pessoa
- idPessoa
- nomePessoa
- idTipo
Tipo
- idTipo
- nomeTipo
A 1ª tem:
1, Manel, 1
2, Maria, (null)
3, Joaquim, 2
E a 2ª:
1, Professor
2, Aluno
O problema está nesta query:
Select nomePessoa, nomeTipo
From Pessoa, Tipo
Where Pessoa.idTipo = Tipo.idTipo
And Pessoa.idPessoa < 50
Esta query para a Maria (2) vai dar, claro, falso. E já devem estar a ver o meu problema...
Um Union sei que funciona (1º faço para os idTipo IS NULL, em seguida para os restantes), mas é mesmo isto que devo utilizar ou há uma maneira melhor? É que essas tabelas são apenas um exemplo... na realidade são 4, e estar a fazer Unions para todos os casos vai resultar numa query de dezenas de linhas :s
Alterar os dados está fora de questão.
Tenho 2 tabelas:
Pessoa
- idPessoa
- nomePessoa
- idTipo
Tipo
- idTipo
- nomeTipo
A 1ª tem:
1, Manel, 1
2, Maria, (null)
3, Joaquim, 2
E a 2ª:
1, Professor
2, Aluno
O problema está nesta query:
Select nomePessoa, nomeTipo
From Pessoa, Tipo
Where Pessoa.idTipo = Tipo.idTipo
And Pessoa.idPessoa < 50
Esta query para a Maria (2) vai dar, claro, falso. E já devem estar a ver o meu problema...
Um Union sei que funciona (1º faço para os idTipo IS NULL, em seguida para os restantes), mas é mesmo isto que devo utilizar ou há uma maneira melhor? É que essas tabelas são apenas um exemplo... na realidade são 4, e estar a fazer Unions para todos os casos vai resultar numa query de dezenas de linhas :s
Alterar os dados está fora de questão.