2009-11-20 6 views
2
SELECT `player`.`cid`, `player`.`k`, `player`.`d`, `gg`.`gg_id`, `gg`.`name`, `gg`.`img`, `cc`.`cid`, `cc`.`name`, `cc`.`class`, `cc`.`gg_id` 
FROM `player` 
LEFT JOIN `cc` ON `cc`.`cid` = `player`.`cid` 
LEFT JOIN `gg` ON `gg`.`gg_id` = `cc`.`gg_id` 
ORDER BY (`k`-`d`) DESC 

je veux commander par K moins les valeurs D, mais je ne suis pas obtenir correctement ce que im a fait de mal? avec ou sans DESC/ASC, sa mauvaiseMySQL Mauvaise ORDER BY

+0

Que voyez-vous? – John

+0

ne pas commander par l'un des champs, en donnant simplement un ordre aléatoire – user166891

+0

Pourriez-vous fournir des exemples de données? – David

Répondre

1

Essayez:

SELECT (player. k - player. d), player. cid, player. , player. d, gg. gg_id, gg. name, gg. img, cc. cid, cc. name, cc. class, cc. gg_id FROM player LEFT JOIN cc ON cc. cid = player. cid LEFT JOIN gg ON gg. gg_id = cc. gg_id ORDER BY (playerk -.. playerd)

CEEPC

je l'ai fait une requête rapide de moi-même et les résultats semblent être non ordonnée (malgré le fait que étaient) jusqu'à ce que j'ajouté le SELECT (player. k - player. d). MySQL s'est également plaint de l'omission du nom de la table dans la clause ORDER BY.

+0

je reçois un # 1241 - L'opérande doit contenir 1 colonne (s) ... si je mets une table (joueur.k-joueur.d), un joueur (kd) ou une base de données (joueur k - joueur d) j'obtiens des erreurs de colonnes inconnues – user166891

+0

je l'ai juste fait pour essayer votre "joueur k - lecteur d xxx" et j'ai remarqué que certaines des colonnes me donnent: 18446744073709551614 ... ils sont tous les deux INT et ont des valeurs légitimes – user166891

+0

ouais c'est définitivement quelque chose à propos de négatif valeurs..i ordonné par k + d et cela a fonctionné .. donc savoir quoi? – user166891