Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

riraito

com consulta dupla.

Recommended Posts

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

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

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

#1064 - Voc꠴em um erro de sintaxe no seu SQL pr󸩭o 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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.