+ Responder ao Tópico



  1. #1

    Padrão SUB QUERY ORACLE

    E Ai Galera Blz?
    Seguinte ja to com dor de cabeça de tanto fuçar no sql e nao conseguir
    seguinte
    tenhu 1 tabela onde gostaria de fazer uma pesquisa e nela o filtro deve ser por outra tabela, seria facil se essa 2 tabela retornace 1 valor mais nela tenho 2 campos

    Exemplo:
    [Tabela A]
    Matricula

    [TABELA B]
    Matricula
    Codigo

    Gostaria de fazer pesquisa na tabela A com os Codigos da tabela B/
    Ja fiz e nao obtive sucesso com;

    SELECT * FROM TBL1 WHERE MATRICULA IN
    (SELECT * FROM TBL2 where matricula = '00000006');
    ERRO na linha 2:
    ORA-00913: too many values

    SELECT * FROM TBL1 WHERE MATRICULA = (SELECT * FROM TBL2 WHERE MATRICULA = `NUMERO`);
    SELECT * FROM TBL1 WHERE MATRICULA EXISTS (SELECT * FROM TBL2 WHERE MATRICULA = `NUMERO`);

    Alguem pode me dar alguma ideia?

    Agradeco

    Vlw

  2. #2
    leysen
    Visitante

    Padrão Re: SUB QUERY ORACLE

    kra deixa ver se entendi, o mesmo campo em duas tabelas ?vc já criou um relacionamento entre as duas tabelas com chave primária ? talvez seja esse o erro !

  3. #3

    Padrão Re: SUB QUERY ORACLE

    Vamos lá... :-)
    Código :
    Select * 
    From tabelaA a Join tabelaB b on a.matricula = b.matricula
    Este script irá trazer as informações da tabelaA desde que existauma correspondência na tabelaB.
    O problema é que, pelo jeito, a sua tabelaB possui uma chave composta, isto é, matricula + codigo, então você pode fazer o seguinte :
    Código :
    Select *
    From tabelaA a Join (Select matricula From tabelaB Group by matricula) b on a.matricula = b.matricula
    se você quizer restringir por número de matrícula, basta inserir a clausula where depois :
    Código :
    Select * 
    From tabelaA a Join tabelaB b on a.matricula = b.matricula
    Where b.matricula = <numero>
    Espero que isso resolva... :-D