cs_lowkey
Messages postés260Date d'inscriptionjeudi 31 mai 2007StatutMembreDernière intervention 5 novembre 2010
-
15 févr. 2008 à 15:04
cs_lowkey
Messages postés260Date d'inscriptionjeudi 31 mai 2007StatutMembreDernière intervention 5 novembre 2010
-
17 févr. 2008 à 17:48
Bonjour à tous !
Voici mon problème :
j'ai une bdd :
champ1 | champ2
12 | 1
12 | 2
13 | 1
14 | 1
J'aimerais faire une requete qui me selectionne le champ1 dans lequel le champ2 correspond à 1 et 2
Résultat voulu :
resultat
12
Mais je ne sais pas comment construire cette requete...
J'ai essayé des select champ1 from table WHERE champ2=1 or champ2=2 group by champ1
ou select champ1 from table group by champ1 having champ2=1 or champ2=2...
rien a faire, je ne trouve pas...
$lid1=mysql_query("SELECT t.id1 FROM test.t1 tINNER JOIN test.t1 t2 ON t2.id1 t.id1 AND t2.id2 1INNER JOIN test.t1 t3 ON t3.id1 t.id1 AND t3.id2 2
WHERE t.id2 = 3");
$cp=mysql_query("SELECT cp FROM test2.t2 WHERE id1 IN ".$lid1);
while($l=mysql_fetch_row($cp)) // Warning : mysql_fetch_row(): supplied argument is not a valid MySQL result resource
{
echo $l[0];
}
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 17 févr. 2008 à 16:33
Tu ne peux pas faire ça comme ça.
$lid1 est une ressource php.
De plus, mysql_query(), sans identifiant de lien, utilisera le dernier lien disponible.
De tte manière, pour faire ça, tu dois avoir une connexion capable de lire tes deux bases, et faire tes requêtes "cross db". Je ne comprends d'ailleurs pas pourquoi tu fais 2 requêtes, là, alors que nous avons vu que nous pouvions aller chercher tes données en une seule requête : ma dernière requête n'était qu'un exemple pour montrer comment tu pouvais récupérer tes id. Mais mes autres requêtes tapaient sur tes 2 tables (et bdd) : tu dois faire la même chose maintenant.
SELECT tmain.cp FROM test.t1 t
INNER JOIN test2 tmain ON tmain.id1 = t1.id1INNER JOIN test.t1 t2 ON t2.id1 t.id1 AND t2.id2 1INNER JOIN test.t1 t3 ON t3.id1 t.id1 AND t3.id2 2
WHERE t.id2 = 3
$lid1=mysql_query("SELECT tmain.cp FROM test.t1 t
INNER JOIN test2.t2 tmain ON tmain.id1 = t1.id1INNER JOIN test.t1 t2 ON t2.id1 t.id1 AND t2.id2 1INNER JOIN test.t1 t3 ON t3.id1 t.id1 AND t3.id2 2
WHERE t.id2 = 3");
while($l=mysql_fetch_row($lid1)) // Warning : mysql_fetch_row(): supplied argument is not a valid MySQL result resource...
{
echo $l[0];
}
Quand je transforme ma requete ne :
$lid1 =mysql_query("SELECT tmain.cp FROM test.t1 t
INNER JOIN test2.t2 tmain ON tmain.id1 = t.id1 (table t au lieu de t1)
INNER JOIN test.t1 t2 ON t2.id1 t.id1 AND t2.id2 1
INNER JOIN test.t1 t3 ON t3.id1 t.id1 AND t3.id2 2
WHERE t.id2 = 3");
je n'ai plus d'erreur, mais je n'ai plus aucun résultat retourné...