Jump to content

Search the Community

Showing results for tags 'left join'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 7 results

  1. Boa noite pessoal, tudo bem? É o seguinte, estou iniciando na área de SQL (inclusive já peço desculpas pelos possíveis erros) e trabalho montando relatórios para um sistema via SQL. Estou montando um relatório que envolve algumas tabelas e preciso somar o valor de uma coluna, ocorre que quando uso a função SUM no select com as junções das tabelas ele não me retorna a soma dos valores, se somo sem as junções das tabelas ele me retorna perfeitamente, segue abaixo o script: Script que trás a soma corretamente: SELECT SUM(VALOR) FROM sophia.MOVFIN WHERE VENDA = '14617' AND PARCELA = '2' Resultado --------------------------------------- 329.0000 (1 linha(s) afetadas) Script onde a soma não funciona corretamente: SELECT DISTINCT T.CODIGO As CODTURMA, F.NOME As NOME, F.CPF As CPF, T.NOME As TURMA, S.DESCRICAO As SEGMENTO, F.CODEXT As RA, F.OBSERVACOES As OBSERVAÇÃO, case M.STATUS WHEN 0 then 'Ativa' WHEN 1 then 'Trancada' WHEN 2 then 'Cancelada' WHEN 3 then 'Transferida' WHEN 4 then 'Evadida' WHEN 5 then 'Concluída' end as STATUS, TAB.DESCRICAO1 As INDICADOPOR, SUM(MEN.VALOR) As MENSALIDADE FROM SophiA.TURMAS T LEFT join sophia.MATRICULA M on M.TURMA_REGULAR = T.CODIGO LEFT join sophia.FISICA F on F.CODIGO = M.FISICA LEFT join sophia.DADOSPF DF on DF.FISICA = F.CODIGO LEFT join sophia.SEGMENTOS S on S.CODIGO = DF.SEGMENTO LEFT join sophia.TAB_DESCRICAO_DADOS TAB on TAB.FISICA = F.CODIGO LEFT join sophia.MOVFIN MOV ON MOV.VENDA = M.VENDA and MOV.PARCELA = '2' LEFT join sophia.MOVFIN MEN ON MEN.TITULO = MOV.TITULO WHERE T.CODIGO = '2214' GROUP BY T.CODIGO, F.NOME, F.CPF, T.NOME, S.DESCRICAO, F.CODEXT, F.OBSERVACOES, M.STATUS, TAB.DESCRICAO1, MEN.VALOR Desta forma, basicamente trás como resultado os três registros (mesma quantidade de registro que existe na tabela para estas condições) com números bem diferentes do registro real, não consegui associar os números a uma referencia para entender o que ocorre. Talvez algo que seja relevante mencionar é que pode-se conter números negativos nos registros, inclusive nessas colunas deste duas querys existem números negativos. Agradeço muito a atenção de todos! :)
  2. vitorweb

    Repetição LEFT JOIN

    Galera tenho a seguinte query, estou fazendo o left join de 4 colunas para realizar a busca em todas as tabelas ao mesmo tempo, porém os dados estao vindo duplicados: SELECT sys_companies.id AS cpny_id, sys_companies_offers.id AS of_id, sys_companies_post.id AS pst_id, sys_companies.name AS cpny_name, sys_companies.email AS cpny_email, sys_companies.type AS cpny_type, sys_companies.logoUrl AS cpny_logo, sys_companies.description AS cpny_desc, sys_companies.website AS cpny_wsite, sys_companies.fb AS cpny_fb, sys_companies.twt AS cpny_twt, sys_companies.inst AS cpny_inst, sys_companies.att AS cpny_att, sys_companies.link AS cpny_link, sys_companies_address.city AS adr_city, sys_companies_address.state AS adr_state, sys_companies_address.zipcode AS adr_zip, sys_companies_address.address AS adr_addr, sys_companies_address.neigh AS adr_ngh, sys_companies_address.number AS adr_num, sys_companies_address.compl AS adr_compl, sys_companies_address.lat AS adr_lat, sys_companies_address.lon AS adr_lon, sys_companies_address.tel1 AS adr_tel1, sys_companies_address.tel2 AS adr_tel2, sys_companies_category.name AS catName, sys_companies_offers.title AS of_title, sys_companies_offers.brand AS of_brand, sys_companies_offers.description AS of_desc, sys_companies_offers.img_url AS of_imgu, sys_companies_offers.price AS of_prc, sys_companies_offers.link AS of_link, sys_companies_offers.createDate AS of_crtd, sys_companies_post.description AS pst_desc, sys_companies_post.link_video AS pst_link, sys_companies_post.createDate AS pst_crtd FROM sys_companies LEFT JOIN sys_companies_address ON sys_companies_address.id_company = sys_companies.id LEFT JOIN sys_companies_category ON sys_companies_category.id = sys_companies.id_category LEFT JOIN sys_companies_offers ON sys_companies_offers.id_company = sys_companies.id LEFT JOIN sys_companies_post ON sys_companies_post.id_company = sys_companies.id WHERE sys_companies_address.city = 'rio claro' AND sys_companies_address.state = 'sp' AND (MATCH (sys_companies.tag) AGAINST('arquiteto') OR MATCH (sys_companies.name) AGAINST('arquiteto') OR MATCH (sys_companies_post.description) AGAINST('arquiteto') OR MATCH (sys_companies_offers.title) AGAINST('arquiteto')) ORDER BY `sys_companies`.`type` DESC limit 0,16 Retorno: imagem erro.png retorno desejado: imagem desejado.png Obrigado! Retorno da query: Desejado: Gostaria de trazer as possibilidades de busca para eu gerar diferentes modos de exibições para as diferentes tabelas, para eu determinar um layout para o retorno... baseadas nos campos que estão em branco ou NULL
  3. Olá pessoal, gostaria de saber se é possível e como limitar a quantidade de linha retornadas usando JOIN. A ideia é limitar a quantidade de linhas retornadas da tabela filho em relação a cada linha da tabela pai. Ex. Tenho 10 registros de imóveis na tabela_imv e cada um destes possui mais de 12 imagens na tabela_imgs (cada imagem em uma linha diferente). Usando o LEFT JOIN gostaria que para cada imóvel fossem trazidas apenas 5 imagens usando LIMIT 5 de modo que a cada 5 imagens encontradas, a busca cessasse na tabela filho, e retomasse procurando as 5 primeiras imagens do próximo imóvel. Desde já agradeço a atenção.
  4. Olá pessoal, não sei se é possível mas minha ideia seria usar o operador IN dentro de um JOIN substituindo o "=". Ex: Teria uma tabela itens_cardapio (car_id, car_nome, car_bebidas) e outra tabela > bebidas (b_id, b_nome) Sei que poderia relaciona n:m tendo uma tabela tipo itens_cardapio_has_bebidas (fk_car_id, fk_b_id) porém queria fazer diferente pois para o que quero isso geraria muitas linhas na tabela de junção. Gostaria que o campo car_bebidas na 1ª tabela armazenasse os ids das bebidas da 2ª tabela. Ex. car_bebidas=1,2,5,6,9,11 e na consulta ficaria algo do tipo: SELECT i.* , GROUP_CONCAT(b.b_nome) FROM itens_cardapio i INNER JOIN bebidas b ON (b.b_id IN i.car_bebidas) Tentei também algo tipo SELECT i.* , (SELECT b.nome FROM bebidas b WHERE b.b_id IN i.car_bebidas) FROM itens_cardapio i Usei algumas variação com GROUP BY e GROUP_CONCAT,... Consegui obter resultados como: - a primeira bebida de cada item do cardápio - repetir várias vezes cada bebida por item, e outros, mas nenhum 100% correto. Se no IN usar os números dos ids das bebidas manualmente, ao invés de puxar de um campo, ele busca as bebidas pedidas, porém não fica dinâmico, pois é sempre os mesmos números de modo a todos itens do cardápio ficaram com (coca-cola,sprite,fanta) por exemplo. Se tiverem alguma ideia agradeço.
  5. Bom dia, Tenho uma base de dados que não é normalizada e possui muitos problemas que tenho que tratar no where. Basicamente o que quero fazer é uma view de algumas tabelas. O primeiro código que eu fiz é o seguinte: SELECT GSI_PROYECTOS.ID_PROYECTO, GSI_PROYECTOS.NOMBRE AS NOMBRE_PREVENTA, GSI_PROYECTOS.ID_REGION_PAIS, GSI_REGIONES_PAISES.NOMBRE_REGION, GSI_REGIONES_PAISES.ID_CLUSTER, GSI_CLUSTERS.NOMBRE AS NOMBRE_CLUSTER, GSI_PROYECTOS.ID_PAIS, GSI_PAISES.NOMBRE_PAIS, GSI_PROYECTOS.ID_CIUDAD, GSI_CIUDADES.NOMBRE_CIUDAD, GSI_PROYECTOS.ID_IDIOMA_PROYECTO, GSI_IDIOMAS.DESCRIPCION, GSI_PROYECTOS.ID_CLIENTE, GSI_CLIENTES.NOMBRE_CLIENTE, GSI_PROYECTOS.ID_TIPO_PROYECTO, GSI_TIPOS_PROYECTO.NOMBRE_TIPO, GSI_PROYECTOS.ID_ESTADO_GOAL, GSI_ESTADOS_GOAL.NOMBRE_ESTADO, GSI_PROYECTOS.ID_PRODUCTO, GSI_PRODUCTOS.NOMBRE_PRODUCTO, GSI_PRODUCTOS.ID_HERRAMIENTA, GSI_HERRAMIENTAS.NOMBRE_HERRAMIENTA, GSI_PROYECTOS.ID_SECTOR, GSI_SECTORES.NOMBRE_SECTOR, GSI_PROYECTOS.ID_RESP_PROYECTOS, GSI_PROYECTOS.FECHA_INI, GSI_PROYECTOS.FECHA_CREACION, GSI_PROYECTOS.FECHA_FIRMA_PREVISTA, GSI_PROYECTOS.FECHA_FIN, GSI_PROYECTOS.ID_EMPRESA_GOAL, GSI_EMPRESA_GOAL.NOMBRE_EMPRESA, GSI_PROYECTOS.GESTOR_CUENTA, GSI_PROYECTOS.FINANCIADO, GSI_PROYECTOS.DEFAULT_PROYECT, GSI_PROYECTOS.ES_PROY_PADRE, GSI_PROYECTOS.OBSERVACIONES, GSI_PROYECTOS.DURACION_PREVISTA, GSI_PROYECTOS.PORCENTAJE_EXITO, GSI_PROYECTOS.ID_PARTNER, GSI_PROYECTOS.ESFUERZO_PREVISTO, GSI_PROYECTOS.OFERTADO, GSI_PROYECTOS.ID_DIVISA, GSI_DIVISAS.NOMBRE, GSI_DIVISAS.CODIGO_ISO, GSI_DIVISAS.VALOR_CONVERSION, GSI_PROYECTOS.OTROS_GASTOS, GSI_PROYECTOS.ESTIMACION_DE_COSTE, GSI_PROYECTOS.DURACION_ALQUILER, GSI_PROYECTOS.ALQUILER_FACTURADO, GSI_PROYECTOS.FACT_IMP_PREV, GSI_PROYECTOS.FACT_LIC_PREV, GSI_PROYECTOS.FACT_MANT_PREV, GSI_PROYECTOS.FACT_ADAP_PREV, GSI_PROYECTOS.FACT_LIC_DIV, GSI_PROYECTOS.FACT_IMP_DIV, GSI_PROYECTOS.FACT_MANT_DIV, GSI_PROYECTOS.FACT_ADAP_DIV, GSI_PROYECTOS.FACTURACION_PREVISTA, GSI_PROYECTOS.MOTIVO_CAMBIO FROM GSI_PROYECTOS, GSI_REGIONES_PAISES, GSI_CLUSTERS, GSI_PAISES, GSI_CIUDADES, GSI_IDIOMAS, GSI_CLIENTES, GSI_TIPOS_PROYECTO, GSI_ESTADOS_GOAL, GSI_PRODUCTOS, GSI_HERRAMIENTAS, GSI_SECTORES, GSI_EMPRESA_GOAL, GSI_DIVISAS WHERE GSI_PROYECTOS.ID_TIPO_PROYECTO = 3 AND GSI_PROYECTOS.ID_REGION_PAIS = GSI_REGIONES_PAISES.ID_REGION AND GSI_REGIONES_PAISES.ID_CLUSTER = GSI_CLUSTERS.ID_CLUSTER AND GSI_PROYECTOS.ID_PAIS = GSI_PAISES.ID_PAIS AND GSI_PROYECTOS.ID_CIUDAD = GSI_CIUDADES.ID_CIUDAD AND GSI_PROYECTOS.ID_IDIOMA_PROYECTO = GSI_IDIOMAS.ID_IDIOMA AND GSI_PROYECTOS.ID_CLIENTE = GSI_CLIENTES.ID_CLIENTE AND GSI_PROYECTOS.ID_TIPO_PROYECTO = GSI_TIPOS_PROYECTO.ID_TIPO_PROYECTO AND GSI_PROYECTOS.ID_ESTADO_GOAL = GSI_ESTADOS_GOAL.ID_ESTADO_GOAL AND GSI_PROYECTOS.ID_PRODUCTO = GSI_PRODUCTOS.ID_PRODUCTO AND GSI_PRODUCTOS.ID_HERRAMIENTA = GSI_HERRAMIENTAS.ID_HERRAMIENTA AND GSI_PROYECTOS.ID_SECTOR = GSI_SECTORES.ID_SECTOR AND GSI_PROYECTOS.ID_EMPRESA_GOAL = GSI_EMPRESA_GOAL.ID_EMPRESA_GOAL AND GSI_PROYECTOS.ID_DIVISA = GSI_DIVISAS.ID_DIVISA Mas eu descobri que na tabela principal GSI_PROYECTOS possui muitos codigos como exemplos(ID_REGION, ID_PAIS, ETC) estão preenchidos com nulo, portanto o where não funciona muito bem. Deste modo alterei o where para retornar as linhas mesmo que o valor seja nulo: SELECT B.ID_PROYECTO, B.NOMBRE AS NOMBRE_PREVENTA, B.ID_REGION, B.NOMBRE_REGION, B.ID_PAIS, B.ID_IDIOMA_PROYECTO, B.ID_CLIENTE, B.ID_CIUDAD, B.ID_TIPO_PROYECTO, B.ID_ESTADO_GOAL, B.ID_PRODUCTO, B.ID_SECTOR, B.ID_RESP_PROYECTOS, B.FECHA_INI, B.FECHA_CREACION, B.FECHA_FIRMA_PREVISTA, B.FECHA_FIN, B.ID_EMPRESA_GOAL, B.GESTOR_CUENTA, B.FINANCIADO, B.ES_PROY_PADRE, B.OBSERVACIONES, B.DURACION_PREVISTA, B.PORCENTAJE_EXITO, B.ID_PARTNER, B.ESFUERZO_PREVISTO, B.OFERTADO, B.ID_DIVISA, B.ESTIMACION_DE_COSTE, B.MOTIVO_CAMBIO FROM ( SELECT* FROM( SELECT PR1.ID_PROYECTO,PR1.NOMBRE,PR1.ID_REGION,PR1.ID_PAIS,PR1.ID_CIUDAD,PR1.ID_IDIOMA_PROYECTO,PR1.ID_CLIENTE, PR1.ID_TIPO_PROYECTO,PR1.ID_ESTADO_GOAL,PR1.ID_PRODUCTO,PR1.ID_SECTOR,PR1.ID_RESP_PROYECTOS, PR1.FECHA_INI,PR1.FECHA_CREACION,PR1.FECHA_FIRMA_PREVISTA,PR1.FECHA_FIN,PR1.ID_EMPRESA_GOAL,PR1.GESTOR_CUENTA, PR1.FINANCIADO,PR1.ES_PROY_PADRE,PR1.OBSERVACIONES,PR1.DURACION_PREVISTA, PR1.PORCENTAJE_EXITO,PR1.ID_PARTNER,PR1.ESFUERZO_PREVISTO,PR1.OFERTADO,PR1.ID_DIVISA,PR1.ESTIMACION_DE_COSTE, PR1.MOTIVO_CAMBIO,CI.NOMBRE_CIUDAD FROM ( SELECT * FROM GSI_PROYECTOS WHERE GSI_PROYECTOS.ID_TIPO_PROYECTO = 3 ) PR1 LEFT JOIN GSI_CIUDADES CI ON PR1.ID_CIUDAD = CI.ID_CIUDAD ) A LEFT JOIN( SELECT R.NOMBRE_REGION,R.ID_REGION FROM GSI_REGIONES_PAISES R )RE ON A.ID_REGION = RE.ID_REGION )B Mas agora estou com problema na comparação do campo ID_REGION pois ele esta nos dois LEFT JOIN. Alguem poderia me ajuda?
  6. Olá, fiz vários testes e não consegui identificar o porque essa consulta realiza a soma dos valores dos registros de forma incorreta: $sql = "SELECT p.NomeProduto, \n" . "IFNULL(SUM(ep.QuantProdutos),0) as Entrada, \n" . "IFNULL(SUM(sp.QuantProdutos),0) as Saida,\n" . "(IFNULL(SUM(ep.QuantProdutos),0) - IFNULL(SUM(sp.QuantProdutos),0)) as Posicao\n" . "FROM `tbl_entradas_produtos` ep \n" . "inner join tbl_produtos p \n" . "on ep.IdProduto = p.idProduto and ep.ExcluirProdutoEnt = 0 \n" . "left join tbl_saidas_produtos as sp \n" . "on (sp.IdProduto = p.idProduto and sp.Estoque = $IdEstoque) and sp.ExcluirProdutoSaida = 0\n" . "where ep.Estoque=$IdEstoque Group by p.NomeProduto"; Realizo essa consulta para montar um relatório de quantidade de produtos em estoque, criei um cenário onde ele deveria retornar o seguinte: NOME DO PRODUTO | ENTRADA | SAIDA | EM ESTOQUE BANANA 105 40 65 ALFACE 50 0 50 CENOURA 80 15 65 Porém ele retorna o seguinte: NOME DO PRODUTO | ENTRADA | SAIDA | EM ESTOQUE BANANA 105 80 25 ALFACE 50 0 50 CENOURA 160 30 130
  7. Olá boa tarde!! Estou com o seguinte problema, preciso pegar os dados de 2 colunas de uma determinada tabela e imprimi-los sobre outra. Assim tenho a tabela animais e onde estão os campos tipo_id e sexo_id e tenho a tabela dados onde tenho id_tipo, e id_sexo, preciso fazer uma chave estrangeira entra as duas para resgatar estes dados estou tentando da seguinte maneira porem esta me resultando um erro. SELECT tipo, sexo FROM animal JOIN dados ON animal.tipo_id = dados.id_tipo JOIN animal.sexo_id = id_sexo; ele me resulta no erro -> not unique table / alias: 'dados'; oque sera? Como resolvo??
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.