riraito 0 Denunciar post Postado Fevereiro 10, 2008 Estou tentando fazer um hanking, em php, estou apenas com problema com a consullta sql, tenho duas tabelas distintas, a unica ligação das duas é um campo conta = account_id, eu consigo fazer a consulta pela seguinte query mysql_query("SELECT * FROM `char`,`pontos` WHERE char.char_id = pontos.char_id AND pontos.pontos_hc >=1 ORDER BY pontos_hc DESC"); queria fazer a integração com a tabela login, a consulta deveria retirar todos que tivesse esse criterio Na tabela login: state = 5 GM >= 40 Tabelas: Tabela pontos CODE CREATE TABLE `pontos` (`char_id` int(11) unsigned NOT NULL auto_increment, `conta` int(11) default '0', `playername` char(60) collate latin1_general_ci default '0', `Mvps_HC` int(11) default '0', `monstros_HC` int(11) default '0', `pontosp_hc` int(11) default '0', `pontos_hc` int(11) default '0', `pontosasky` int(11) default '0', `pontospasky` int(11) default '0', `pontosgeral` int(11) default '0', PRIMARY KEY (`char_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci COMMENT='Pontos de Hc e AS'; Tabela login CODE CREATE TABLE `login` (`account_id` int(11) unsigned NOT NULL auto_increment, `userid` varchar(255) NOT NULL default '', `user_pass` varchar(32) NOT NULL default '', `lastlogin` datetime NOT NULL default '0000-00-00 00:00:00', `---` enum('M','F','S') NOT NULL default 'M', `logincount` mediumint(9) unsigned NOT NULL default '0', `email` varchar(39) NOT NULL default '', `level` tinyint(3) NOT NULL default '0', `error_message` smallint(11) unsigned NOT NULL default '0', `connect_until` int(11) unsigned NOT NULL default '0', `last_ip` varchar(100) NOT NULL default '', `memo` smallint(11) unsigned NOT NULL default '0', `ban_until` int(11) unsigned NOT NULL default '0', `state` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`account_id`), KEY `name` (`userid`) ) TYPE=MyISAM AUTO_INCREMENT=2000000; Agradeço desde já. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 10, 2008 Primeiramente, bem-vindo(a) ao iMasters! :D Tente assim SELECT c.*, p.* FROM char c Inner Join pontos p On c.char_id = p.char_id Inner Join login l On l.account_id = p.conta Where p.pontos_hc >=1 AND l.state = 5 ORDER BY p.pontos_hc DESC; Só não achei o campo GM... :unsure: Sobre Join: http://dev.mysql.com/doc/refman/4.1/pt/join.html Compartilhar este post Link para o post Compartilhar em outros sites
riraito 0 Denunciar post Postado Fevereiro 11, 2008 Malz GM = Level Ele está dado erro na consulta especificamente na linha 1, estou lendo o tutorial que você me enviou muito obrigado. E obrigado pela recepção! Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 11, 2008 Qual é a mensagem de erro? Compartilhar este post Link para o post Compartilhar em outros sites
riraito 0 Denunciar post Postado Fevereiro 11, 2008 #1064 - Voc꠴em um erro de sintaxe no seu SQL pro a 'char c Inner Join pontos p On c.char_id = p.char_id Inner Join login l On l.ac' na linha 1 Inner join que dizer que será retirado da consulta? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 11, 2008 coloque aspas no char, para que o MySQL não interprete-o como uma palavra reservada. Join é uma junção de tabelas. Ele não retira resultados. Pelo contrário: serve para buscar informações em outras tabelas. Compartilhar este post Link para o post Compartilhar em outros sites
riraito 0 Denunciar post Postado Fevereiro 11, 2008 Mil desculpas a query que eu dei ta totalmente errada mysql_query("SELECT * FROM `char`,`pontos` WHERE char.char_id = pontos.char_id AND pontos.pontos_hc >=1 ORDER BY pontos_hc DESC"); A tabela login nao está aparecendo ai. mysql_query("SELECT * FROM `char`,`pontos` WHERE char.char_id = pontos.char_id AND pontos.pontos_hc >=1 ORDER BY pontos_hc DESC"); tipo eu coloquei a consulta assim e pego: SELECT * FROM `login`,`pontos`,`char` WHERE login.account_id = pontos.conta AND char.char_id = pontos.char_id AND pontos.pontos_hc >=1 AND login.level <= 1 AND login.state =0 ORDER BY pontos_hc DESC O erro foi meu eu dei os dados errado e expliquei o problema errado, peço "MIL DESCULPAS" e muito obrigado pelo seu tempo irei ler todo esse tutorial que me enviaste, muito obrigado mesmo. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 11, 2008 Tranquilo, rapaz. :) O importante é que solucionou o problema. Precisando, estamos aí! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites