Formation Google AnalyticsSavez-vous bien utiliser les outils de mesure d'audience ?
Effectuez-vous un calcul de ROI (Retour sur investissement) pour savoir comment améliorer vos campagnes emarketing ?
Savez-vous utiliser les bons outils pour booster votre taux de transformation ?
La formation Web Analytics de Ranking Metrics, présentée par un expert reconnu officiellement par Google Analytics, vous apportera les réponses à toutes vos questions !
===> Informations et inscriptions.

Faire 2 requetes sql en une seule

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
doom
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 21 Déc 2003
Messages: 155

URL permanente de ce messagePosté le : Lun Déc 18, 2006 14:44    Sujet du message: Faire 2 requetes sql en une seule

bonjour à tous,

voilà, je sais que la version de mysql installé sur mon serveur (la 5 je crois) me permet d'imbriquer les requêtes sql les une dans les autres.

La j'aimerai réaliser un requête mais je n'arrive pas à la mettre en forme, je vous explique :

j'ai une table1 qui contient un champ email, et une table2 qui contient un champ email2. J'aimerai faire une requête sql qui sélectionne ceux présents dans la table1 mais absent de la table2.
Je ne sais pas du tout comment m'y prendre Sad j’attends votre aide avec impatience!

merci d'avance

doom
 
doom
finstreet
WRInaute accro
WRInaute accro

Inscrit le: 10 Juil 2005
Messages: 9871

URL permanente de ce messagePosté le : Lun Déc 18, 2006 14:46    Sujet du message: Faire 2 requetes sql en une seule

c pas de la requete imbriquée... regarde du coté du LEFT JOIN
 
finstreet Visiter le site web du posteur
Bh@Mp0
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 18 Jan 2005
Messages: 245

URL permanente de ce messagePosté le : Lun Déc 18, 2006 14:53    Sujet du message: Faire 2 requetes sql en une seule

finstreet> c'est toi qui te gourres là Smile

Code:
SELECT `table1`.`email` FROM `table1` WHERE `table1`.`email` NOT IN (SELECT `table2`.`email2` FROM `table2`)
 
Bh@Mp0 Visiter le site web du posteur
petit-ourson
WRInaute passionné
WRInaute passionné

Inscrit le: 31 Mai 2004
Messages: 795
Localisation: Paris

URL permanente de ce messagePosté le : Lun Déc 18, 2006 14:58    Sujet du message: Faire 2 requetes sql en une seule

Bh@Mp0 a écrit:
finstreet> c'est toi qui te gourres là :)

On peut aussi le faire avec dur RIGHT JOIN ou du LEFT JOIN.
 
petit-ourson Visiter le site web du posteur
jexl
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 23 Juin 2005
Messages: 203

URL permanente de ce messagePosté le : Lun Déc 18, 2006 15:00    Sujet du message: Faire 2 requetes sql en une seule

Tu peux aussi, simpliement, remplacer tes tables par des SELECT, je m'explique :

Code:

SELECT *
FROM(
     SELECT
email as mail1 from table1
WHERE
'ta condition'
) A INNER JOIN(
     SELECT
email as mail2 from table2
WHERE
'ta condition'
) B
ON A.id= B.id


@+
 
jexl
Bh@Mp0
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 18 Jan 2005
Messages: 245

URL permanente de ce messagePosté le : Lun Déc 18, 2006 15:14    Sujet du message: Faire 2 requetes sql en une seule

petit-ourson> les join sont très utiles quand il s'agit de trouver des analogies entre des tables, pas tellement quand on veut trouver des différences (on peut toujours le faire avec des join, mais c'est plus du bricolage alors qu'il existe les requêtes imbriquées)

jexl> ta solution, bien que plaisante et compliquée à souhait, ne fait pas ce que demande l'auteur du post initial Smile
 
Bh@Mp0 Visiter le site web du posteur
finstreet
WRInaute accro
WRInaute accro

Inscrit le: 10 Juil 2005
Messages: 9871

URL permanente de ce messagePosté le : Lun Déc 18, 2006 15:23    Sujet du message: Faire 2 requetes sql en une seule

Bh@Mp0 a écrit:
petit-ourson> les join sont très utiles quand il s'agit de trouver des analogies entre des tables, pas tellement quand on veut trouver des différences (on peut toujours le faire avec des join, mais c'est plus du bricolage alors qu'il existe les requêtes imbriquées)


Et au niveau des performances ? ce sera pas le bricolage le + rapide ? Smile
 
finstreet Visiter le site web du posteur
jexl
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 23 Juin 2005
Messages: 203

URL permanente de ce messagePosté le : Mar Déc 19, 2006 10:18    Sujet du message: Faire 2 requetes sql en une seule

Bh@Mp0 -> a oui effectivement, j'avais pas lu jusqu'au bout. Very Happy

Alors voila ce qui pourrait aussi marcher :


Code:

SELECT     DISTINCT mail
      FROM
      table1 A LEFT OUTER JOIN
        (SELECT DISTINCT mail
         FROM          table2
         WHERE ) B ON A.id= b.id
      WHERE  (B.mail IS NULL)


Ca devrait marcher
 
jexl
narayana
WRInaute passionné
WRInaute passionné

Inscrit le: 28 Jan 2005
Messages: 831
Localisation: paris

URL permanente de ce messagePosté le : Mar Déc 19, 2006 10:33    Sujet du message: Faire 2 requetes sql en une seule

finstreet a écrit:
Bh@Mp0 a écrit:
petit-ourson> les join sont très utiles quand il s'agit de trouver des analogies entre des tables, pas tellement quand on veut trouver des différences (on peut toujours le faire avec des join, mais c'est plus du bricolage alors qu'il existe les requêtes imbriquées)


Et au niveau des performances ? ce sera pas le bricolage le + rapide ? Smile


Je pense que cela dépend de la structure de la table (index?) mais un explain devrait notifier ces performances
 
narayana Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort