10-12-2008, 11:53 PM
Plop !
C't'encore mwa ! Content de me revoir - déjà - ?
Cette fois-ci, j'ai cette requête :
Mon problème, c'est que les données en orange sont des données calculables. Des données que je ne souhaite donc pas avoir en dur dans ma BdD.
Pour avoir ces données, je pourrais faire respectivement :
J'peux ensuite faire la somme avec une addition PHP et j'ai mon poids.
J'passe ensuite au calcul de la propriété nb_mechs :
Et j'ai toutes les infos que j'voulais.
Mais j'ai l'intime conviction qu'il est possible de construire une unique requête pour avoir tout ça, sauf qu'à part faire de multiples essais infructueux, j'ai pas la soluce. Et ça fait un ch'ti temps déjà que j'ai pas fait de SQL un peu plus high level. Ca me plait d'ailleurs ces 'tites problématiques
Après, sauf erreur de ma part, j'pense quand même que si une requête n'est pas suffisante, ce p'tit bout d'algo est largement optimisable.
Merci par avance pour le coup de main !
Et maintenant, j'm'en vais me coucher rejoindre ma femme. Ai bien bossé aujourd'hui !
@tchaOo° et bonne nuit !
C't'encore mwa ! Content de me revoir - déjà - ?
Cette fois-ci, j'ai cette requête :
Code PHP :
SELECT
warehouses.id AS warehouse_id,
warehouses.capacityMech,
warehouses.capacityWeight,
warehouses.countries_id,
player_has_warehouse.name AS warehouse_name,
// player_has_warehouse.weight,
// player_has_warehouse.nb_mechs,
countries.name AS country_name
FROM
player_has_warehouse,
warehouses
JOIN countries
ON warehouses.countries_id = countries.id
WHERE player_has_warehouse.players_id = $this->playerSess['id']
AND player_has_warehouse.warehouses_id = warehouses.id
Mon problème, c'est que les données en orange sont des données calculables. Des données que je ne souhaite donc pas avoir en dur dans ma BdD.
Pour avoir ces données, je pourrais faire respectivement :
Code PHP :
SELECT SUM(armors.weight)
FROM armors, player_has_armor
WHERE player_has_armor.players_id = $this->playerSess['id']
AND player_has_armor.armors_id = armors.id;
SELECT SUM(weapons.weight)
FROM weapons, player_has_weapon
WHERE player_has_weapon = $this->playerSess['id']
AND player_has_weapon.weapons_id = weapons.id;
J'passe ensuite au calcul de la propriété nb_mechs :
Code PHP :
SELECT COUNT(player_has_exomech.id)
FROM player_has_exomech
WHERE player_has_exomech.players_id = $this->playerSess['id'];
Et j'ai toutes les infos que j'voulais.
Mais j'ai l'intime conviction qu'il est possible de construire une unique requête pour avoir tout ça, sauf qu'à part faire de multiples essais infructueux, j'ai pas la soluce. Et ça fait un ch'ti temps déjà que j'ai pas fait de SQL un peu plus high level. Ca me plait d'ailleurs ces 'tites problématiques
Après, sauf erreur de ma part, j'pense quand même que si une requête n'est pas suffisante, ce p'tit bout d'algo est largement optimisable.
Merci par avance pour le coup de main !
Et maintenant, j'm'en vais me coucher rejoindre ma femme. Ai bien bossé aujourd'hui !
@tchaOo° et bonne nuit !