Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/03/2011, 14h45   #1
Futur Membre du Club
 
83pulse@gmail.com 83pulse@gmail.com
Inscription : février 2011
Messages : 33
Détails du profil
Informations personnelles :
Nom : 83pulse@gmail.com 83pulse@gmail.com

Informations forums :
Inscription : février 2011
Messages : 33
Points : 17
Points : 17
Par défaut Requête dans une plage de tables

Salut!

J'aimerais savoir quelle méthode est la plus efficace pour récupérer un nombre de lignes depuis plusieurs tables?

Exemple:

Dans la table app_data, on a:
  • Id: 2
  • UserId: 12
  • Data: AM
  • Id: 3
  • UserId: 12
  • Data: JG

Dans une autre table, disons app_picto, on a:
  • Id: 53
  • UserId: 12
  • Data: BP

Et maintenant on effectue un SELECT WHERE 'UserId = 12' afin de retourner ces 3 lignes... Un select + num_rows par table est trop lourd... Jusque là j'ai pas réussi à obtenir le nombre de ligne, ma requête me retourne uniquement 1 si le UserId existe... Ce n'est pas le but!

Un petit coup de main serait le bienvenue

Merci!
kfa1983 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 15h04   #2
Membre régulier
 
Homme
Chef de projet NTIC
Inscription : juin 2007
Messages : 69
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2007
Messages : 69
Points : 70
Points : 70
Salut kfa1983,

Vu que test deux tables possèdent la même structure, tu peux créer une table temporaire, y insérer les données des deux tables (après filtrage sur le IdUser) et faire un count du tout.

Après suivant ton SGBD tu auras plus ou moins de difficultés à le faire, certains offrant des fonctionnalités supplémentaires.
Cobalt59 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/03/2011, 15h27   #3
Futur Membre du Club
 
83pulse@gmail.com 83pulse@gmail.com
Inscription : février 2011
Messages : 33
Détails du profil
Informations personnelles :
Nom : 83pulse@gmail.com 83pulse@gmail.com

Informations forums :
Inscription : février 2011
Messages : 33
Points : 17
Points : 17
Merci Cobalt! J'avais aussi envisagé la table temporaire mais un peu lourd aussi... J'ai finalement réussi à retourner mes lignes en utilisant UNION ALL, si ça peut intéresser quelqu'un :

Code :
1
2
3
4
5
SELECT id FROM
	((SELECT id FROM app_picto WHERE user_id = '12')
	UNION ALL // pour ne pas confondre les doublons éventuels
	(SELECT id FROM app_blog WHERE user_id = '12'))
	AS this
kfa1983 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h26.


 
 
 
 
Partenaires

Hébergement Web