Bonjour,
Je dois exporter dans un tableau excel des donnees, lesquelles sont reparties dans 2 tables avec une colonne commune.
Schematiquement les tables donnent ceci:
Si par exemple TABLE1 contient:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 TABLE1 - ProviderID INT - UserID VARCHAR(20) - Name VARCHAR(30) - FirstName VARCHAR(30) TABLE2 - UserID VARCHAR(20) - Date VARCHAR(20) - Data1 VARCHAR(50) - Data2 VARCHAR(50) - Data3 VARCHAR(50) - Data4 VARCHAR(50)
Pro1, User1, tintin, tintin2
Pro1, User2, Henry, patrick
Pro2, User3, Thierry, michel
Et TABLE2 contient:
User1, 10/01/2010, data1, data2, data3, data4
User2, 15/03/2009, d1,d2,d3,d4
User3, 5/12/2005, d5,d8,d6,d4
Je dois recuperer tous les users avec toutes leurs donnees pour chaque provider en sachant qu'un script php me fournit la liste de tous les ProviderID.
N'ayant pas les connaissances d'un expert en MySql, je vais poser quelques questions pour resoudre mon probleme.
1. Comment dois-je proceder pour que MySql me retourne ceci ?
Je suppose qu'il faut que je fasse une requete pour chaque providerID fournie par PHP ?
2. Mais dans cette requete comment puis-je faire pour recuperer les donnees de TABLE1 et de TABLE2,
sachant que TABLE2 va dependre du UserID de TABLE1, mais que TABLE2 dois me retourner plusieurs reponses pour le meme UserID ?
Est-il possible de faire cela dans une seule requete ?
Par exemple, voici les resultat que je devrais obtenir:
Pour Pro1, MySql me retourne:
-Pro1, User1, Tintin, tintin2, 10/01/2010, data1,data2,data3,data4
-Pro1, User2, Henry, patrick, 15/03/2009, d1,d2,d3,d4
Pour Pro2MySql me retourne:
-Pro2, Thierry, michel, 5/12/2005, d5,d8,d6,d4
3. Et ensuite si j'ai 500 providers, et que chaque Provider a 10000 users par exemple, je pense que cela va representer de grosses donnees a gerer et les requetes risques d'etre tres longues a s'executer et peut-etre augmenter l'utilisation du CPU.
Comment ce genre de situation peut-elle se gerer ? Faut-il faire plusieurs scripts PHP ? Comment procederiez-vous ?
Merci d'avance
Fred
Partager