Ir para conteúdo
Fórum Script Brasil
  • 0

Join E Union


guilffernet

Pergunta

2 respostass a esta questão

Posts Recomendados

  • 0

You can also solve the problem efficiently by using a UNION that combines the output of two separate SELECT statements. See Section 13.2.7.2, “UNION Syntax”.

Você pode resolver o problema eficientemente usando UNION que combina o resultado de dois comandos SELECT. Veja a seção 13.2.7.2, "UNION Syntax".

Each SELECT searches only one key and can be optimized:

Cada SELECT pesquisa apenas uma chave e pode ser otimizado:

SELECT field1_index, field2_index

FROM test_table WHERE field1_index = '1'

UNION

SELECT field1_index, field2_index

FROM test_table WHERE field2_index = '1';

Agora, dê uma olhada no exemplo do post Problema Com Subconsulta em que há o exemplo de se "juntar" os resultados de duas queries...

Quanto ao JOIN... serve para "ligar", ou "relacionar" tabelas, que contenham campos com informações em comum...

Por exemplo, quero listar todos os produtos comprados pelo cliente código "00484", no dia 10/jul/2007:

select produtos.descricao, produtos.unidade

from `acme`.`vendas` vendas

inner join `acme`.`produtos` produtos

on (vendas.codigoean=produtos.codigoean)

where vendas.data="2007/07/10"

and vendas.clientecod="00484"

Isso retornaria:

descricao unidade

mouse otico clone 3084 | un

padmouse clone redondo | un

pendrive kingston 1gb | un

Estes dados foram colhidos a partir da tabela vendas, que contem o codigo do cliente (coluna clientecod) e outras como quantidade e valor unitario (estas não interessavam à consulta)... já o nome do produto e sua unidade, não ficam na tabela vendas, e, sim, somente na tabela produtos... assim "ligamos" ou "relacionamos" a tabela de vendas com a tabela de produtos com o campo que elas tem em comum, no caso codigoean (tanto na tabela vendas como na tabela produtos o nome da coluna foi o mesmo)...

E se eu quisesse também a quantidade e o valor unitário (que ficam na tabela vendas), na mesma consulta?

select produtos.descricao, produtos.unidade, vendas.quantidade, vendas.valorunitario

from `acme`.`vendas` vendas

inner join `acme`.`produtos` produtos

on (vendas.codigoean=produtos.codigoean)

where vendas.data="2007/07/10"

and vendas.clientecod="00484"

Ok?

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...