SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

Participe do fórum, é rápido e fácil

SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 12 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Chegou o novo tema 6.5.5 - SSGamers - Servidores online de qualidade - Aproveite e entre para nossa comunidade, inscreva-se já! - Ouça nossa web radio - Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.

    [Tutorial] JOIN [MySQL]

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11378
    Moedas : 1031967
    Data de inscrição : 06/10/2011
    Idade : 28
    Localização : Brasil

    [Tutorial] JOIN [MySQL] Empty [Tutorial] JOIN [MySQL]

    Mensagem por Weslley_Script Seg 17 Abr 2023 - 16:18

    JOIN MySQL




    Requisitos para entender esse tutorial
    • Conhecimento básico em MySQL



    1 - Introdução
    Nesse tutorial vamos falar sobre uma sintaxe do MySQL usada para combinar resultados de duas (ou mais) tabelas, em apenas uma só consulta e gerando um único resultado.
    Isso pode ser usado para economizar consultas, deixar as consultas mais eficazes e obter resultados mais completos.
    Existem alguns tipos de JOIN, os mais utilizados e que aqui serão pensados, são eles: INNER JOIN e OUTER JOIN.
    Aqui não será apresentado nenhum código PAWN, pois os conhecimentos obtidos podem ser utilizados no SA-MP.


    2 - INNER JOIN
    [Tutorial] JOIN [MySQL] OzSJm4b
    Esse JOIN, também conhecido como JOIN interno, é provavelmente o mais utilizado. Ele retorna apenas os dados que combinam em duas mesas.

    Vamos a um exemplo prático, temos essas duas tabelas e seus respectivos dados:
    [Tutorial] JOIN [MySQL] 3xEgFR4
    [Tutorial] JOIN [MySQL] NUSIDIf

    Vou executar a seguinte consulta
    Код:

    Código:
    SELECT nome, orgid, lider, sub FROM `jogador` JOIN `orgsinfo` USING (orgid) WHERE `playerid` = 1


    Vamos entender-la em partes
    Até essa parte acredito que esteja tudo bem, selecionei alguns campos da tabela jogador. Mas observe que eu já indiquei campos também da tabela orgsinfo.
    Код:
    Código:
    SELECT nome, orgid, lider, sub FROM `jogador`


    Aqui eu indico a tabela que eu deseja fazer o JOIN, nesse caso é a orgsinfo.
    Код:

    Código:
    JOIN `orgsinfo`


    Através do USING eu indico qual campo eu desejo associar, caso utilizei o campo orgid, que é comum em ambas as tabelas e ira se associar sem problemas.
    Код:

    Código:
    USANDO (orgid)


    Um filtro básico indicando o id do jogador a ser buscado.
    Код:
    ON

    Código:
    [size=14][size=13]DE `playerid` = 1[/size][/size]


    [center][/center]

    E agora vem o resultado:
    [Tutorial] JOIN [MySQL] Vb7b6Ts
    Como podemos ver, o MySQL associado a informações e nos deu apenas um resultado com base nas duas tabelas. O que seria feito com 2 consultas, foi feito em apenas uma e com um resultado mais fácil de se utilizar.


    3 - USING & ON
    No exemplo feito no INNER JOIN nуs utilizamos o USING e acredito que tenha dado para entender bem o seu uso. Porém também é possível indicar condições especificas de associação de dados através do ON, veja como ficaria a mesma consulta anterior usando ON:
    Код:

    Código:
    SELECT nome, o.orgid, lider, sub FROM `jogador` j JOIN `orgsinfo` o ON (j.orgid = o.orgid) WHERE `playerid` = 1


    O resultado será o mesmo nesse caso, mas poderia ser diferente caso a condição utilizada fosse outra. Nunca se esqueça de que quando você usa ON é necessário as vezes identificar de qual tabela vem tal campo, pois os campos podem ter o mesmo nome, como você pode ver neste caso o campo orgid está presente em ambas as tabelas e por isso eu identifico de qual tabela eles pertencem na condição do ON.

    Vale também ressaltar que não é obrigatório o uso de USING ou ON, caso não seja utilizado nenhum dos dois, o JOIN irá associar automaticamente todos os campos que sejam iguais.


    4 - OUTER JOIN (LEFT e RIGHT)
    No caso do OUTER JOIN, também conhecido como JOIN externo, não é necessário que os dados sejam combinados em ambas as tabelas. Existem 3 tipos de OUTER JOIN: LEFT, RIGHT e FULL.
    Para exemplificar iremos utilizar essas tabelas:
    [Tutorial] JOIN [MySQL] FdysqN7
    [Tutorial] JOIN [MySQL] TEuIBPO

    4.1 - LEFT OUTER JOIN
    [Tutorial] JOIN [MySQL] HQm7eJt
    Nesse caso iremos mostrar todos os dados da tabela da esquerda, mesmo que não seja correspondente aos dados da tabela da direita.
    Vou executar a seguinte consulta:
    Код:

    Código:
    SELECT idproduto, qntd, preço, estoque FROM `vendas` LEFT JOIN `produtos` USING (idproduto)


    Como vocкs podem ver, nada muito diferente na sintaxe em relao ao que jб acompanhou nesse tutorial, exceto por esta parte que indica que й um LEFT JOIN
    Код:

    Código:
    LEFT JOIN `produtos`


    E o resultado é o seguinte:
    [Tutorial] JOIN [MySQL] RyrvqBO
    Como podemos ver, existem campos em que está escrito NULL, pois os dados correspondentes a eles não foram encontrados em outra tabela. Porém como existia tal registro na tabela da esquerda, mesmo não existindo correspondência na da direita, os dados foram retornados.

    4.2 - RIGHT OUTER JOIN
    [Tutorial] JOIN [MySQL] VDE5I01
    Agora executando está consulta:
    Код:

    Código:
    SELECT idproduto, qntd, preço, estoque FROM `vendas` RIGHT JOIN `produtos` USING (idproduto)


    Também não tenho nada de diferente, apenas onde indica que é RIGHT JOIN
    Код:

    Código:
    RIGHT JOIN `produtos`


    E o resultado é este:
    [Tutorial] JOIN [MySQL] 889T6SA
    Novamente temos campos com NULL, pelo mesmo motivo da outra vez, porém nessa consulta exibimos todos os resultados da direita e os campos NULL sгo os que nгo foram encontrados na da esquerda.


    5 - JOIN com GROUP BY e funções de grupo
    Não vão me aprofundar muito nisso, pois pretendo fazer um pequeno tutorial sobre GROUP BY e funções de grupo, porÉm gostaria de deixar um exemplo de como é possível, não só associar dados através de JOIN como também estou agrupando eles e obtendo um resultado mais fácil de se manejar.
    Usando a tabela do exemplo anterior, de produtos/vendas, vou fazer o seguinte INNER JOIN:
    Код:

    Código:
    SELECT idproduto, SUM(qntd) "qntdvendida", SUM(qntd)*preco "precoXqntd", preco, estoque FROM `vendas` JOIN `produtos` USING (idproduto) GROUP




    BY idproduto

    Veja o resultado:
    [Tutorial] JOIN [MySQL] JD3XY8F
    Veja que não é o campo idproduto não foi associado, como também foi agrupado com os seus semelhantes e a quantidade dos produtos com o mesmo id foram somados e assim apresentando um resultado eficaz e limpo.

    5 - FIM!
    5.1 - Não consegui entender tudo?
    Infelizmente esse assunto as vezes exige prática, por isso tentei mostrar vários exemplos e não me alongar muito.
    Entгo tente fazer seus prуprios JOINS, pratique! Assim você ira conseguir entender melhor, ver exatamente como funciona o JOIN e criar uma percepção de quando você pode utilizá-lo para melhorar suas consultas.
    5.2 - Sugestões? Erros?
    Eu ainda [Tutorial] JOIN [MySQL] Smile
    não sou muito experiente em fazer tutoriais e por isso aceito sugestões de como ser mais didático e etc.
    e todo pessoal do grupo SA-MP no Whatsapp.
    Creditos: Kreison



    [Tutorial] JOIN [MySQL] D07Xwqb
    [Tutorial] JOIN [MySQL] Yjab9HN

      Data/hora atual: Dom 28 Abr 2024 - 10:34