【发布时间】:2015-01-16 17:26:30
【问题描述】:
我正在为一个在线游戏网站开发一个排名系统,但在查询返回重复值时遇到了问题。
查询:
SELECT * FROM `personajes`,`ranking_pvp` ORDER BY `victorias` DESC LIMIT 30
结果: http://i.imgur.com/rXnZP7B.jpg
重复值:
`nombre` , `victorias` , `derrotas`
“personajes”表:
-
idINT(11) 非空 -
nombreVARCHAR(30) NOT NULL -
sexoTINYINT(2) NOT NULL -
claseSMALLINT(3) NOT NULL -
color1INT(11) 非空 -
color2INT(11) 非空 -
color3INT(11) 非空 -
kamasBIGINT(32) NOT NULL -
puntosHechizoINT(11) 非空 -
capitalINT(11) 非空 -
energiaINT(11) NOT NULL DEFAULT '10000' -
nivelINT(11) 非空 -
xpBIGINT(32) NOT NULL DEFAULT '0' -
tallaINT(11) 非空 -
gfxINT(11) 非空, -
alineacionINT(11) NOT NULL DEFAULT '0', -
honorINT(11) NOT NULL DEFAULT '0', -
deshonorINT(11) NOT NULL DEFAULT '0', -
nivelAlinINT(11) NOT NULL DEFAULT '0' COMMENT 'Nivel alineamiento', -
cuentaINT(11) 非空, -
vitalidadINT(11) NOT NULL DEFAULT '0', -
fuerzaINT(11) NOT NULL DEFAULT '0', -
sabiduriaINT(11) NOT NULL DEFAULT '0', -
inteligenciaINT(11) NOT NULL DEFAULT '0', -
suerteINT(11) NOT NULL DEFAULT '0', -
agilidadINT(11) NOT NULL DEFAULT '0', -
mostrarAmigosTINYINT(4) NOT NULL DEFAULT '1', -
mostrarAlineacionINT(11) NOT NULL DEFAULT '0', -
canalVARCHAR(15) NOT NULL DEFAULT '*#%!pi$:?', -
mapaINT(11) NOT NULL DEFAULT '8479', -
celdaINT(11) 非空, -
porcVidaINT(11) NOT NULL DEFAULT '100', -
hechizosTEXT NOT NULL, -
objetosTEXT NOT NULL, -
posSalvadaVARCHAR(20) NOT NULL DEFAULT '8570,314', -
zaapsVARCHAR(250) NOT NULL DEFAULT '', -
oficiosVARCHAR(300) NOT NULL DEFAULT '', -
xpMonturaTINYINT(2) NOT NULL DEFAULT '0', -
monturaINT(11) NOT NULL DEFAULT '-1', -
tituloVARCHAR(255) NOT NULL DEFAULT '0', -
esposoINT(11) NOT NULL DEFAULT '0', -
tiendaTEXT NOT NULL, -
mercanteINT(11) NOT NULL DEFAULT '0', -
sFuerzaINT(11) NOT NULL DEFAULT '0', -
sInteligenciaINT(11) NOT NULL DEFAULT '0', -
sAgilidadINT(11) NOT NULL DEFAULT '0', -
sSuerteINT(11) NOT NULL DEFAULT '0', -
sVitalidadINT(11) NOT NULL DEFAULT '0', -
sSabiduriaINT(11) NOT NULL DEFAULT '0', -
restriccionesAINT(11) NOT NULL DEFAULT '8192', -
restriccionesBINT(11) NOT NULL DEFAULT '0', -
encarnacionINT(11) NOT NULL DEFAULT '-1', -
emotesINT(11) NOT NULL DEFAULT '0', -
ornamentoTINYINT(2) NOT NULL DEFAULT '0', -
ornamentosVARCHAR(255) NOT NULL, -
misionesTEXT NOT NULL, -
coleccionTEXT NOT NULL, -
resetsSMALLINT(3) NOT NULL DEFAULT '0', -
almanaxTEXT NOT NULL, -
ultimoNivelINT(11) NOT NULL DEFAULT '0', -
setsRapidosTEXT NOT NULL COLLATE 'latin1_spanish_ci' - 主键 (
id)
“ranking_pvp”表:
-
idINT(11) 非空, -
nombreVARCHAR(255) NOT NULL, -
victoriasINT(11) NOT NULL, -
derrotasINT(11) 非空, -
nivelAlineacionINT(11) 非空, - 主键 (
id)
有人可以增加我的查询以删除重复值吗?
等待和谢谢 ;)
【问题讨论】:
-
您从两个不同的表中选择,完全没有
join条件,这意味着您将获得笛卡尔连接,table1 x table2。例如表 1 中有 100 条记录,表 2 中有 50 条记录,您将获得 100x50 = 5000 个结果行。 -
使用
JOIN我的查询如何? -
不知道。您需要让这两个表共享至少一个要加入的公共字段,但由于您没有提供有关结构的详细信息,我们无法为您提供帮助:en.wikipedia.org/wiki/Join_%28SQL%29
-
已更新。等列:
personajes.nombre和ranking_pvp.nombre