Requêtes imbriquées

jagogordonne
Invité n'ayant pas de compte PHPfrance

14 févr. 2011, 17:17

Bonjour à tous,
J'éssaye de créé une requétes imbriquée mais cela ne fonctionne pas :(
J'ai deux table une pour les lots et une pour les abattages qui sont lié par un numéro de lots : Num_lot et lot_abattage
J'ai fait une première requètes pour récupérer tous les Numéro de lot :
$req = "SELECT * FROM $bdd.`tbl_lot` 
WHERE num_etat = 1";
Jusqu'ici tout va bien je récupère bien mes lots avec le statut 1 mais ensuite je voudrais récupérer les lots sur lequel on a déjà effectuer un ou plusieurs abattage :
$req1 = " 	
Select *
From $bdd.`tbl_lot`
Where Num_lot <> (Select lot_abattage 
                             From `tbl_abattage`
	             Where lot_abattage  = $parametre) ";
Je pense que je mit prend mal, il doit y avoir plus simple.
Toute solution accepter ;)
Merci.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

14 févr. 2011, 18:19

salut,

Select lot_abattage From `tbl_abattage` Where lot_abattage = $parametre <= tu récupère un truc que tu connais déja la ;)
Select * From $bdd.`tbl_lot` => c'est quoi $bdd ? (pas utilisé ensuite)


une jointure semble plus indiquée.

ce que tu souhaite c'est bien les lots et non les "abattages" ?
Num_lot : clef primaire de la table lots ?
lot_abattage : clef étrangère corrspondant à la clef primaire de la table lots, dans la table abattage ?
(en claire tbl_lot.Num_lot = tbl_abattage.lot_abattage ?)
si oui
$req1 = ' Select distinct(lot_abattage), autre info utile From tbl_abattage
join `tbl_lot` on tbl_lot.Num_lot = tbl_abattage.lot_abattage';

après si tu veut tous les "abattage" par rapport à un lot (j'ai l'impression que c'est ça au vu de ta requete, bien qu'au finale elles e contredit elle même :) ).
select les infos qui vont bien from `tbl_abattage` where lot_abattage = $parametre (oui oui c'est ta requete :) );

voila j'espère avoir répondu à ta question si non montre nous les "create table" des deux tables, indique la liaison entre elle et ce que tu avec des mots simples et clair (on ne sait pas du tout ce que tu veux et y a de grandes chances que l'on connaisse pas le métier final :) )

@+
Il en faut peu pour être heureux ......

jagogordonne
Invité n'ayant pas de compte PHPfrance

17 févr. 2011, 16:15

Salut moogli,
salut,

Select lot_abattage From `tbl_abattage` Where lot_abattage = $parametre <= tu récupère un truc que tu connais déja la ;)
Oui se sont tous mes numéros de lots que je récupère d'une requète plus haut
Select * From $bdd.`tbl_lot` => c'est quoi $bdd ? (pas utilisé ensuite)
$bdd est la base donnée
une jointure semble plus indiquée.
Oui je suis pas un super développeur ;) je suis admin réseau à la base et là jme suis lancé dans une application web.
ce que tu souhaite c'est bien les lots et non les "abattages" ?
Oui je souhaite récupérer les lots qui on déjà été utilisé pour un abatage.
Num_lot : clef primaire de la table lots ?
oui
lot_abattage : clef étrangère corrspondant à la clef primaire de la table lots, dans la table abattage ?
(en claire tbl_lot.Num_lot = tbl_abattage.lot_abattage ?)
oui
$req1 = ' Select distinct(lot_abattage), autre info utile From tbl_abattage
join `tbl_lot` on tbl_lot.Num_lot = tbl_abattage.lot_abattage';
je vais tester sa ;)
après si tu veut tous les "abattage" par rapport à un lot (j'ai l'impression que c'est ça au vu de ta requete, bien qu'au finale elles e contredit elle même :) ).
select les infos qui vont bien from `tbl_abattage` where lot_abattage = $parametre (oui oui c'est ta requete :) );
Non ce n'est pas sa je souhaite récupérer les infos des lots qui ont été utilisé dans un abattage peut importe l'abattage se sont les infos du lots qui importe, mais le lot doit impérativement avoir subit un abattage sinon il ne m'intéresse pas pour le tableau que je génère suite a ces informations.
voila j'espère avoir répondu à ta question si non montre nous les "create table" des deux tables, indique la liaison entre elle et ce que tu avec des mots simples et clair (on ne sait pas du tout ce que tu veux et y a de grandes chances que l'on connaisse pas le métier final :) )
Oui tu m'as bien éclairer mais j'ai toujours des doutes sur la requètes je repares sur mes tests ;)
Merci

jagogordonne
Invité n'ayant pas de compte PHPfrance

18 févr. 2011, 17:36

Sa fonctionne impeccable une petite jonction et sa roule merci ;) par compte je n'ai pas utilisé la même syntaxe :
SELECT mes champs,
FROM tbl_lot, tbl_abattage
WHERE tbl_lot.Num_lot = tbl_abattage.lot_abattage
Merci