none
SQL - procedure RRS feed

  • Pergunta

  • SELECT c.*, a.*, b.sistema as ownarea, b.sis_id as ownarea_cod
         FROM configusercall as c, sistemas as a, sistemas as b
         WHERE c.conf_opentoarea = a.sis_id and c.conf_ownarea = b.sis_id and c.conf_cod = 1;

    Boa noite!

    Caros amigos, poderia decifrar se for possivel o que esse codigo faz recebi esse codigo para implementar no meu sistema, mas não sei o que ele pretende fazer. Entendo muito pouco, não sei pq esta no comando c.* e todo o resto.

    grato,

    quarta-feira, 25 de maio de 2011 03:17

Respostas

  • Fera, é o seguinte: este comando simplesmente lê algumas informações de algumas tabelas. Segue explicação detalhada:

    O comando "FROM" diz quais tabelas serão utilizadas: tabela configusercall, para a qual foi dado o "apelido" C; tabela sistemas, para a qual foi dado o "apelido" A; e novamente a tabela sistemas, desta vez com o "apelido" B.

    No comando "SELECT", está a lista dos campos que deverá ser lida destas tabelas:

      1) "c.*" representa todos (*) os campos da tabela C (configusercall);

      2) "a.*" representa todos (*) os campos da tabela A (sistemas);

      3) "b.sistema as ownarea" seleciona as informações do campo "sistema" da tabela B (sistemas), mas ao invés do título da coluna ficar "sistema", ela ficará com o nome dado no "as": ownarea;

      4) "b.sis_id as ownarea_cod " seleciona as informações do campo "sis_id" da tabela B (sistemas), mas ao invés do título da coluna ficar "sis_id", ela ficará com o nome dado no "as": ownarea_cod.

    "WHERE" significa "onde". Então tudo o que está depois deste comando são filtros e ligações entre estas tabelas.

      1) "c.conf_opentoarea = a.sis_id": liga as tabelas C (configusercall) e A (sistemas) pelo campo "conf_opentoarea" e "sis_id", respectivamente.

      2) "c.conf_ownarea = b.sis_id": liga as tabelas C (configusercall) e B (sistemas) pelo campo "conf_ownarea" e "sis_id", respectivamente.

      3) "c.conf_cod = 1": filtra a tabela C (configusercall) para que sejam retornados apenas os registros que tiverem o campo ".conf_cod" igual a 1.


    Roberson Ferreira


    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.


    • Marcado como Resposta LSNNOVAES quinta-feira, 26 de maio de 2011 06:32
    quarta-feira, 25 de maio de 2011 03:49
  • Se fizermos uma leitura direta, seria:

    Este comando seleciona todos os registros da tabela configusercall, todos os registros da tabela sistemas e, de novo, os campos "sistema" e "sis_id" da tabela sistema, com os títulos "ownarea" e "ownarea_cod", respectivamente.

    Isso, respeitando os seguintes critérios: só seleciona os registros da tabela configusercall e da tabela sistema quando: 1) o campo "conf_opentoarea" da primeira e "sis_id" da segunda tiverem correspondência; 2) o campo "conf_ownarea" da primeira e "sis_id" da segunda tiverem correspondência. Além disso, só seleciona os registros da tabela configusercall que tiverem valor 1 no campo "conf_cod".


    Roberson Ferreira


    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta LSNNOVAES quinta-feira, 26 de maio de 2011 06:32
    quarta-feira, 25 de maio de 2011 04:01

Todas as Respostas

  • Fera, é o seguinte: este comando simplesmente lê algumas informações de algumas tabelas. Segue explicação detalhada:

    O comando "FROM" diz quais tabelas serão utilizadas: tabela configusercall, para a qual foi dado o "apelido" C; tabela sistemas, para a qual foi dado o "apelido" A; e novamente a tabela sistemas, desta vez com o "apelido" B.

    No comando "SELECT", está a lista dos campos que deverá ser lida destas tabelas:

      1) "c.*" representa todos (*) os campos da tabela C (configusercall);

      2) "a.*" representa todos (*) os campos da tabela A (sistemas);

      3) "b.sistema as ownarea" seleciona as informações do campo "sistema" da tabela B (sistemas), mas ao invés do título da coluna ficar "sistema", ela ficará com o nome dado no "as": ownarea;

      4) "b.sis_id as ownarea_cod " seleciona as informações do campo "sis_id" da tabela B (sistemas), mas ao invés do título da coluna ficar "sis_id", ela ficará com o nome dado no "as": ownarea_cod.

    "WHERE" significa "onde". Então tudo o que está depois deste comando são filtros e ligações entre estas tabelas.

      1) "c.conf_opentoarea = a.sis_id": liga as tabelas C (configusercall) e A (sistemas) pelo campo "conf_opentoarea" e "sis_id", respectivamente.

      2) "c.conf_ownarea = b.sis_id": liga as tabelas C (configusercall) e B (sistemas) pelo campo "conf_ownarea" e "sis_id", respectivamente.

      3) "c.conf_cod = 1": filtra a tabela C (configusercall) para que sejam retornados apenas os registros que tiverem o campo ".conf_cod" igual a 1.


    Roberson Ferreira


    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.


    • Marcado como Resposta LSNNOVAES quinta-feira, 26 de maio de 2011 06:32
    quarta-feira, 25 de maio de 2011 03:49
  • Se fizermos uma leitura direta, seria:

    Este comando seleciona todos os registros da tabela configusercall, todos os registros da tabela sistemas e, de novo, os campos "sistema" e "sis_id" da tabela sistema, com os títulos "ownarea" e "ownarea_cod", respectivamente.

    Isso, respeitando os seguintes critérios: só seleciona os registros da tabela configusercall e da tabela sistema quando: 1) o campo "conf_opentoarea" da primeira e "sis_id" da segunda tiverem correspondência; 2) o campo "conf_ownarea" da primeira e "sis_id" da segunda tiverem correspondência. Além disso, só seleciona os registros da tabela configusercall que tiverem valor 1 no campo "conf_cod".


    Roberson Ferreira


    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta LSNNOVAES quinta-feira, 26 de maio de 2011 06:32
    quarta-feira, 25 de maio de 2011 04:01