Voila mon probleme.
J'ai deux tables :
-telecom_inv_ligne qui reference toutes nos lignes telephoniques et ou elles sont. (1549 enregistrements)
-telecom_cegetel qui reference tous les appels passés, le montant de la com et kel type d'appel (fixe/mobile/international etc) (52 947 enregistrements)
Le but :
Recuperer le numero, le type d'appel, combien d appels passés, le lieu, la somme.
Si je ne veux ressortir que les infos pour les numeros de telephones se trouvant dans cegetel no soucy :
SELECT numero,zone,count(numero),patrimoine,sum(montant) FROM telecom_inv_ligne inv, telecom_cegetel cg
where
inv.numero=cg.id_inst
group by numero, zone
//547 rows in set (0.65 sec)
La ou ca se complique c'est que j'aurais voulu aussi ressortir les numeros de tel qui n'apparaissent pas dans cegetel
Donc j ai commence par faire ca :
SELECT numero,zone,count(numero),patrimoine,sum(montant) FROM telecom_inv_ligne inv
LEFT JOIN telecom_cegetel cg ON inv.numero=cg.id_inst
group by numero, zone
//1899 rows in set (5 min 51.89 sec)
Ca va pas du tout vous vous en doutez :-)
Voici les explains si vous comprenez quelque chose qui pourrait me servir.
A savoir que numero est clé primaire chez telecom_inv_ligne
et id_inst est index dans telecom_cegetel.
Code :
- +-------+--------+---------------+---------+---------+------------+-------+-----------------+
- | table | type | possible_keys | key | key_len | ref | rows | Extra |
- +-------+--------+---------------+---------+---------+------------+-------+-----------------+
- | cg | ALL | ID_INST | NULL | NULL | NULL | 52947 | Using temporary |
- | inv | eq_ref | PRIMARY | PRIMARY | 4 | cg.ID_INST | 1 | where used |
- +-------+--------+---------------+---------+---------+------------+-------+-----------------+
|
Code :
- +-------+------+---------------+------+---------+------+-------+-----------------+
- | table | type | possible_keys | key | key_len | ref | rows | Extra |
- +-------+------+---------------+------+---------+------+-------+-----------------+
- | inv | ALL | NULL | NULL | NULL | NULL | 1549 | Using temporary |
- | cg | ALL | ID_INST | NULL | NULL | NULL | 52947 | |
|