Select sur 2 tables avec meme champs

Résolu/Fermé
fredodo13
Messages postés
86
Date d'inscription
mercredi 17 mars 2010
Statut
Membre
Dernière intervention
11 février 2018
- 2 mars 2014 à 09:36
jee pee
Messages postés
35662
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
17 août 2022
- 2 mars 2014 à 17:58
Bonjour à tous !

Quoi de mieux que de commencer ce dimanche avec un peu de php/sql ? ^^

alors mon probleme est simpe, je cherche a faire un select from sur deux tables dans la meme bdd et en cherchant les meme champs.

On va dire que mes tables se nomment gignac et ibra et que les champs que je souhaite sortir s'apellent nom, age et club

Comment je peux faire ça ?

Merci pour votre aide

2 réponses

jee pee
Messages postés
35662
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
17 août 2022
8 775
Modifié par jee pee le 2/03/2014 à 10:09
Salut,

Si tu veut additionner les resultats des 2 tables il faut une union

select nom, age, club from gignac
where ....
union
select nom, age, club from ibra
where ....

cdlt

        Un étranger, c'est un ami qu'on n'a pas encore rencontré.
0
fredodo13
Messages postés
86
Date d'inscription
mercredi 17 mars 2010
Statut
Membre
Dernière intervention
11 février 2018
2
2 mars 2014 à 10:48
Slt jee pee et merci de t'intéresser à mon pb.

J'ai une erreur
Call to a member function fetch() on a non-object in


je te mets directement la requête :


$bdd->query('SELECT * from gignac WHERE visible="y" ORDER BY dateexp LIMIT 5 UNION SELECT * from ibra WHERE visible="y" ORDER BY dateexp LIMIT 5 ');

je ressors derriere ds un tableau les noms etcs.... donc on peur oublier cette partie!
0
jee pee
Messages postés
35662
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
17 août 2022
8 775
2 mars 2014 à 11:15
Il faudrait ne laisser qu'un seul
ORDER BY dateexp LIMIT 5
, le dernier et donc supprimer le 1er.
0
fredodo13
Messages postés
86
Date d'inscription
mercredi 17 mars 2010
Statut
Membre
Dernière intervention
11 février 2018
2
2 mars 2014 à 12:31
malheuresement tjrs la meme erreure snif

$bdd->query('SELECT * from hotel UNION SELECT * from gite WHERE visible="y" ORDER BY dateexp LIMIT 5 ');
0
jee pee
Messages postés
35662
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
17 août 2022
8 775
Modifié par jee pee le 2/03/2014 à 12:55
 Si vous voulez utiliser un ORDER BY pour le résultat final de UNION, 
vous devez utiliser des parenthèses :

(SELECT a FROM nom_de_table WHERE a=10 AND B=1 ORDER BY a LIMIT 10)
UNION
(SELECT a FROM nom_de_table WHERE a=11 AND B=2 ORDER BY a LIMIT 10)
ORDER BY a;


ref : http://dev.mysql.com/doc/refman/5.0/fr/union.html
0
fredodo13
Messages postés
86
Date d'inscription
mercredi 17 mars 2010
Statut
Membre
Dernière intervention
11 février 2018
2
2 mars 2014 à 16:56
ceux qui donnerai dans mon cas


$reponse = $bdd->query('SELECT * from hotel WHERE visible="y" ORDER BY dateexp LIMIT 5) UNION (SELECT * from gite WHERE visible="y" ORDER BY dateexp LIMIT 5)ORDER BY dateexp';

mais bon apparemment j'ai une erreur de syntaxe cette fois :s
0
jee pee
Messages postés
35662
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
17 août 2022
8 775
Modifié par jee pee le 2/03/2014 à 17:03
query('SE
==>
query('(SE ............ ');


ce n'est que de la logique de syntaxe je n'utilise pas php (ni mysql)
0