Autor Tópico: Selecionar mais de 3 tabelas  (Lida 268 vezes)

ramosinfo

  • Intermediário
  • ***
  • Mensagens: 149
Selecionar mais de 3 tabelas
« Online: Junho 28, 2016, 10:42:10 am »
Bom dia pessoal,
 
Sempre fiz select de 2 ou 3 tabelas, mas agora preciso fazer select com várias condições de 8 tabelas.
 
Tentei INNER JOIN, RIGHT OUTER JOIN, etc. E me lista apenas 1 ou quando uma única tabela está vazia me lista nada. Gostaria de alguma sugestão.
 
Segue meu SQL completo:
 
E o resultado repetido e não de todos os fornecedores...



CÓDIGO SQL:

Código: [Selecionar]
SELECT
   fornecedores.cod_fornecedor,
   fornecedores.razao_social,
   fornecedores.fantasia,
   fornecedores.cnpj,
   fornecedores.ie,
   fornecedores.email,
   fornecedores.cep,
   fornecedores.logradourro,
   fornecedores.complemento,
   fornecedores.cidade,
   fornecedores.estado,
   fornecedores.responsavel_contato,
   fornecedores.telefone_empresa,
   fornecedores.telefone_responsavel,
   fornecedores.celular,
   fornecedores.qtd_entregadores,
   fornecedores.data_fundacao,
   fornecedores.senha,
   fornecedores.data_hora_cadastro,
   fornecedores.bairro,
   fornecedores.numero,
   fornecedor_visual.cod_fornecedor_visual,
   fornecedor_visual.cod_fornecedor,
   fornecedor_visual.descricao_empresa,
   fornecedor_visual.site,
   fornecedor_visual.facebook,
   fornecedor_visual.twitter,
   fornecedor_visual.instagram,
   fornecedor_visual.youtube,
   fornecedor_visual.localizacao_mapa,
   fornecedor_visual.logomarca,
   fornecedor_visual.foto1,
   fornecedor_visual.foto2,
   fornecedor_visual.foto3,
   fornecedor_visual.foto4,
   fornecedor_visual.data_cadastro,
   fornecedor_visual.latitude,
   fornecedor_visual.longitude,
   fornecedor_tipo_entrega.cod_fornecedor_tipo_entrega,
   fornecedor_tipo_entrega.cod_fornecedor,
   fornecedor_tipo_entrega.descricao,
   fornecedor_tipo_entrega.valor,
   fornecedor_tipo_entrega.data_cadastro,
   fornecedor_funcionamento.cod_forn_funcionamento,
   fornecedor_funcionamento.cod_fornecedor,
   fornecedor_funcionamento.aberto_dias,
   fornecedor_funcionamento.hora_inicio,
   fornecedor_funcionamento.hora_fim,
   fornecedor_funcionamento.data_cadastro,
   fornecedor_configura_frete.cod_configura_frete,
   fornecedor_configura_frete.cod_fornecedor,
   fornecedor_configura_frete.tem_delivery,
   fornecedor_configura_frete.custo_padrao,
   fornecedor_configura_frete.frete_gratis,
   fornecedor_configura_frete.valor_minimo_frete_gratis,
   fornecedor_configura_frete.tipos_pagamentos,
   fornecedor_configura_frete.prazo_entrega_min,
   fornecedor_configura_frete.prazo_entrega_max,
   fornecedor_configura_frete.agenda_comida,
   fornecedor_credito.cod_fornecedor_codigo,
   fornecedor_credito.cod_fornecedor,
   fornecedor_credito.qtd_credito
FROM
   fornecedores INNER JOIN fornecedor_credito ON fornecedores.cod_fornecedor = fornecedor_credito.cod_fornecedor
   RIGHT OUTER JOIN fornecedor_visual ON fornecedores.cod_fornecedor = fornecedor_visual.cod_fornecedor
   RIGHT OUTER JOIN fornecedor_tipo_entrega ON fornecedores.cod_fornecedor = fornecedor_tipo_entrega.cod_fornecedor
   RIGHT OUTER JOIN fornecedor_funcionamento ON fornecedores.cod_fornecedor = fornecedor_funcionamento.cod_fornecedor
   RIGHT OUTER JOIN fornecedor_configura_frete ON fornecedores.cod_fornecedor = fornecedor_configura_frete.cod_fornecedor
WHERE
   (fornecedor_credito.qtd_credito >= '1')
ORDER BY
   fornecedores.fantasia


flaviomorais

  • Avançado
  • ****
  • Mensagens: 348
    • Email
Re:Selecionar mais de 3 tabelas
« Responder #1 Online: Junho 28, 2016, 12:14:42 pm »
Para tabelas que podem estar vazias use left join

Bom dia pessoal,
 
Sempre fiz select de 2 ou 3 tabelas, mas agora preciso fazer select com várias condições de 8 tabelas.
 
Tentei INNER JOIN, RIGHT OUTER JOIN, etc. E me lista apenas 1 ou quando uma única tabela está vazia me lista nada. Gostaria de alguma sugestão.
 
Segue meu SQL completo:
 
E o resultado repetido e não de todos os fornecedores...



CÓDIGO SQL:

Código: [Selecionar]
SELECT
   fornecedores.cod_fornecedor,
   fornecedores.razao_social,
   fornecedores.fantasia,
   fornecedores.cnpj,
   fornecedores.ie,
   fornecedores.email,
   fornecedores.cep,
   fornecedores.logradourro,
   fornecedores.complemento,
   fornecedores.cidade,
   fornecedores.estado,
   fornecedores.responsavel_contato,
   fornecedores.telefone_empresa,
   fornecedores.telefone_responsavel,
   fornecedores.celular,
   fornecedores.qtd_entregadores,
   fornecedores.data_fundacao,
   fornecedores.senha,
   fornecedores.data_hora_cadastro,
   fornecedores.bairro,
   fornecedores.numero,
   fornecedor_visual.cod_fornecedor_visual,
   fornecedor_visual.cod_fornecedor,
   fornecedor_visual.descricao_empresa,
   fornecedor_visual.site,
   fornecedor_visual.facebook,
   fornecedor_visual.twitter,
   fornecedor_visual.instagram,
   fornecedor_visual.youtube,
   fornecedor_visual.localizacao_mapa,
   fornecedor_visual.logomarca,
   fornecedor_visual.foto1,
   fornecedor_visual.foto2,
   fornecedor_visual.foto3,
   fornecedor_visual.foto4,
   fornecedor_visual.data_cadastro,
   fornecedor_visual.latitude,
   fornecedor_visual.longitude,
   fornecedor_tipo_entrega.cod_fornecedor_tipo_entrega,
   fornecedor_tipo_entrega.cod_fornecedor,
   fornecedor_tipo_entrega.descricao,
   fornecedor_tipo_entrega.valor,
   fornecedor_tipo_entrega.data_cadastro,
   fornecedor_funcionamento.cod_forn_funcionamento,
   fornecedor_funcionamento.cod_fornecedor,
   fornecedor_funcionamento.aberto_dias,
   fornecedor_funcionamento.hora_inicio,
   fornecedor_funcionamento.hora_fim,
   fornecedor_funcionamento.data_cadastro,
   fornecedor_configura_frete.cod_configura_frete,
   fornecedor_configura_frete.cod_fornecedor,
   fornecedor_configura_frete.tem_delivery,
   fornecedor_configura_frete.custo_padrao,
   fornecedor_configura_frete.frete_gratis,
   fornecedor_configura_frete.valor_minimo_frete_gratis,
   fornecedor_configura_frete.tipos_pagamentos,
   fornecedor_configura_frete.prazo_entrega_min,
   fornecedor_configura_frete.prazo_entrega_max,
   fornecedor_configura_frete.agenda_comida,
   fornecedor_credito.cod_fornecedor_codigo,
   fornecedor_credito.cod_fornecedor,
   fornecedor_credito.qtd_credito
FROM
   fornecedores INNER JOIN fornecedor_credito ON fornecedores.cod_fornecedor = fornecedor_credito.cod_fornecedor
   RIGHT OUTER JOIN fornecedor_visual ON fornecedores.cod_fornecedor = fornecedor_visual.cod_fornecedor
   RIGHT OUTER JOIN fornecedor_tipo_entrega ON fornecedores.cod_fornecedor = fornecedor_tipo_entrega.cod_fornecedor
   RIGHT OUTER JOIN fornecedor_funcionamento ON fornecedores.cod_fornecedor = fornecedor_funcionamento.cod_fornecedor
   RIGHT OUTER JOIN fornecedor_configura_frete ON fornecedores.cod_fornecedor = fornecedor_configura_frete.cod_fornecedor
WHERE
   (fornecedor_credito.qtd_credito >= '1')
ORDER BY
   fornecedores.fantasia