PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 14-02-2013 08:45:59

tapi
Membre
Inscription : 16-08-2010
Messages : 27

requêtes SELECT imbriquées

Bonjour,
Je souhaiterai imbriquer deux select, l'un pour récupérer des indicatifs qui correspondent à un critère dans la table T1 et l'autre pour récupérer des noms (dans la table T2) correspondant aux indicatifs récupérés précédemment.
Cette syntaxe fonction mais est extrêmement trop longue. Merci de votre aide.

$query0 = mysql_query("SELECT DISTINCT lib_ag, ind_agence FROM structure WHERE ind_agence IN (SELECT DISTINCT AGENC FROM m41000 WHERE DRR='$indicatif' and LIBELLE_ACTION='$libelle') ORDER by DGA") or die (mysql_error());

Hors ligne

#2 14-02-2013 10:53:03

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : requêtes SELECT imbriquées

Saluton,
A priori (j'insiste sur ce préambule) toute sous-requête est substituable par une jointure. Et pour cause, c'est comme cela que l'on procédait avant l'arrivée des sub-select.
Donc, revois ta requête dans ce sens, ou fournis-nous le résultat d'un SHOW CREATE TABLE sur chacune des deux tables `structure` et `m41000` (au passage structure est un mot réservé de MySQL), ce sera plus simple pour nous de construire la requête en jointure.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 14-02-2013 11:13:02

tapi
Membre
Inscription : 16-08-2010
Messages : 27

Re : requêtes SELECT imbriquées

Ok, merci, je vais voir dans cette direction.

Hors ligne

#4 14-02-2013 16:39:00

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : requêtes SELECT imbriquées

Bonjour,

tapi a écrit :

Cette syntaxe fonctionne mais est extrêmement trop longue.

Si ca peut vous rassurer elle reste courte^^. Si par contre cette syntaxe permet parfois de résoudre des problèmes d'écriture applicative (qui reste une très mauvaise raison malgré tout), ou simplifier l'écriture d'une migration de données par exemple, je vous conseille en effet de suivre la recommandation de MK et de passer par une jointure. Réservez ce genre de syntaxe - quand vous pouvez difficilement faire autrement - aux vues de préférence.

Dernière modification par Jc (14-02-2013 16:40:59)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

Pied de page des forums