kenny 0 Denunciar mensagem Publicado 16 de Março de 2016 (editado) Boa Noite pessoal. Eu estou com uma duvida que é tenho 3 tabelas completamente iguais (mesma estrutura). Ou seja eu queria 2 campos das 3 tabelas e somar um dos campos que é igual nas três. Esse campo é um timestamp. Eu tentei assim: SELECT campo1, campo2, SUM(connected) FROM $table, $table1, $table2 WHERE steam LIKE '%STEAM_%' ORDER BY SUM(connected) DESC " Eu sou um bastante verde e tentei fazer umas pesquisas e nao sei se terei só de usar o SUM ou terei mesmo que o INNER JOIN. Podem me ajudar? Obrigado e Cumprimentos Editado 16 de Março de 2016 por kenny Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
kenny 0 Denunciar mensagem Publicado 17 de Março de 2016 Boa Tarde pessoal se calhar expliquei me mal. Eu tenho 3 tabelas com varios campos mas a estrutura exatamente igual e uma query é assim: SELECT nome, id, connected FROM $table WHERE steam LIKE '%STEAM_%' ORDER BY connected DESC E agora eu queria selecionar a $tabela, $tabela1, $tabela2 e somar o campo "connected" das 3 tabelas para depois me retornar o total de cada nome e id. Será que alguém me pode ajudar? Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1177 Denunciar mensagem Publicado 17 de Março de 2016 a tua questão é um bocado estranha podes dar um exemplo concreto ? apresenta um exemplo com a info das 3 tabelas e um resultado exemplo da query que pretendes IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
kenny 0 Denunciar mensagem Publicado 17 de Março de 2016 (editado) Bem Happy para nao estar aqui a postar os campos das tabelas todas é assim eu tenho as seguintes tabelas: Tabela #1 +----------+-------+-------+-------+ | id steam | nome | connected | +----------+--------+-------+------+ | Steam | José | 123452 | | Steam | Luis | 12789 | +---------+------+-------+---------+ Tabela #2 +----------+-------+-------+-------+ | id steam | nome | connected | +----------+--------+-------+------+ | Steam | José | 1452 | | Steam | Luis | 67493 | +---------+------+-------+---------+ Tabela #3 +----------+-------+-------+-------+ | id steam | nome | connected | +----------+--------+-------+------+ | Steam | José | 25469 | | Steam | Luis | 54698 | +---------+------+-------+---------+ Agora eu queria somar os valores do connected nas tabelas todas e depois apresentar algo assim: 1º José 150373 ( 123452+ 1452 + 25469 ) 2º Luis 134980 ( 12789 + 67493 + 54698 ) etc etc Nao quero exibir os valores que estão entre parênteses. Eu só queria construir a query só nao sei a melhor forma de o fazer se só o SUM chega ou tenho que usar o INNER JOIN. Editado 17 de Março de 2016 por kenny Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1177 Denunciar mensagem Publicado 17 de Março de 2016 SELECT nome, SUM(connected) AS Total FROM ( SELECT nome, connected FROM table1 WHERE steam LIKE '%STEAM_%' UNION ALL SELECT nome, connected FROM table2 WHERE steam LIKE '%STEAM_%' UNION ALL SELECT nome, connected FROM table3 WHERE steam LIKE '%STEAM_%')GROUP BY nome DESC[/Code] IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
kenny 0 Denunciar mensagem Publicado 18 de Março de 2016 Obrigado Happy. Não falta aí uns "AS" pois deu me o erro: Every derived table must have its own alias Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1177 Denunciar mensagem Publicado 18 de Março de 2016 (editado) falta, mas eu escrevi o SQL de cabeça e tu com o erro deverias saber onde está o erro ... SELECT nome, SUM(connected) AS Total FROM ( SELECT nome, connected FROM table1 WHERE steam LIKE '%STEAM_%' UNION ALL SELECT nome, connected FROM table2 WHERE steam LIKE '%STEAM_%' UNION ALL SELECT nome, connected FROM table3 WHERE steam LIKE '%STEAM_%') AS my_tablesGROUP BY nome DESC[/Code] Editado 18 de Março de 2016 por HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
kenny 0 Denunciar mensagem Publicado 18 de Março de 2016 Boas Happy Deixei assim : $items_per_page = 10; ("SELECT name, steam, SUM(connected) AS Total FROM ( SELECT name, steam, connected FROM $table WHERE steam LIKE '%STEAM_%' UNION ALL SELECT name, steam, connected FROM $table1 WHERE steam LIKE '%STEAM_%' UNION ALL SELECT name, steam, connected FROM $table2 WHERE steam LIKE '%STEAM_%') AS $table GROUP BY connected DESC LIMIT ".$_GET['rowstart'].",$items_per_page"); Mas por exemplo tenho um user que me aparece +----------+-------+-------+-------+ | id steam | nome | connected | +----------+--------+-------+------+ | Steam | str | 137231 | +---------+------+-------+---------+ E mais a frente noutra página o mesmo: +----------+-------+-------+-------+ | id steam | nome | connected | +----------+--------+-------+------+ | Steam | str | 21524 | +---------+------+-------+---------+ Em vês de me aparecer só uma vez e: +----------+-------+-------+-------+ | id steam | nome | connected | +----------+--------+-------+------+ | Steam | str | 158755 | +---------+------+-------+---------+ A soma dos dois. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1177 Denunciar mensagem Publicado 18 de Março de 2016 qual foi o campo em que no meu código está o agrupamento ? e qual o teu ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
kenny 0 Denunciar mensagem Publicado 18 de Março de 2016 No teu está o "nome" e eu pus o "connected" para me ordenar o que tem mais para o que tem menos. Porque se deixar o "nome" aleatório e não ordena. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1177 Denunciar mensagem Publicado 18 de Março de 2016 No teu está o "nome" e eu pus o "connected" para me ordenar o que tem mais para o que tem menos. Porque se deixar o "nome" aleatório e não ordena. e qual foi o nome que dei ao campo somado ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
kenny 0 Denunciar mensagem Publicado 19 de Março de 2016 e qual foi o nome que dei ao campo somado ? Total... Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1177 Denunciar mensagem Publicado 19 de Março de 2016 e se ordenares por esse campo que é na realidade do campo que pretendes ordenar ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
kenny 0 Denunciar mensagem Publicado 19 de Março de 2016 Pois já está obrigado Happy estava me a esquecer do "ORDER BY" Obrigado por tudo. Abraço a todos. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites