[firebase-br] DUVIDA EM SELECT
Ramiro Cavalcanti
ramiro_puc em hotmail.com
Sex Out 10 20:28:08 -03 2008
Caros amigos,
estou com uma dúvida em um SELECT. Gostaria de saber qual dos dois é mais
rápido e se há uma outra maneira de fazer.
TABELA: ORDEM_SERVICO
ID, THREAD_VENDEDOR, THREAD_TECNICO...
(THREAD = FK->USUARIO)
Vou fazer o JOIN usando as chaves estrangeiras para duas colunas de uma
tabela (ORDEM DE SERVICO), que referenciam para a mesma tabela (USUARIO).
O THREAD_TECNICO nem sempre existe (deve retornar null se nao achar
correspondencia).
O THREAD_VENDEDOR sempre existe.
Usarei "JOIN" para THREAD_VENDEDOR e "LEFT JOIN" para THREAD_TECNICO.
COMO EU FIZ (usando um join pra cada campo, ainda q na mesma tabela):
SELECT t2.LOGIN VENDEDOR, t3.LOGIN TECNICO FROM ORDEM_SERVICO t1
JOIN USUARIO t2 ON t1.THREAD_VENDEDOR = t2.ID
LEFT JOIN USUARIO t3 ON t1.THREAD_VENDEDOR = t3.ID
DUVIDA.1:
SERIA MAIS RAPIDO FAZER UM SUBELECT? (acho que nao, ne?)
SELECT (SELECT LOGIN FROM USUARIO WHERE ID = t1.THREAD_SERVICO) as VENDEDOR
DUVIDA 2:
Existe alguma maneira de usar LEFT JOIN em ambos? Em um unico join? Como
ficará o nome das tabelas desse jeito?
Exemplo:
SELECT t2.LOGIN(????), t3.LOGIN(????) FROM ORDEM_SERVICO t1 LEFT JOIN
USUARIO t2 ON t1.THREAD_VENDEDOR = t2.ID AND t1.THREAD_TECNICO = t2.id.
Obrigado,
Ramiro Cavalcanti.
Mais detalhes sobre a lista de discussão lista