Select sur 2 tables avec meme champs

Résolu/Fermé
fredodo13 Messages postés 89 Date d'inscription mercredi 17 mars 2010 Statut Membre Dernière intervention 12 octobre 2022 - 2 mars 2014 à 09:36
jee pee Messages postés 39632 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 - 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 39632 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234
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 89 Date d'inscription mercredi 17 mars 2010 Statut Membre Dernière intervention 12 octobre 2022 3
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 39632 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234
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 89 Date d'inscription mercredi 17 mars 2010 Statut Membre Dernière intervention 12 octobre 2022 3
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 39632 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234
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 89 Date d'inscription mercredi 17 mars 2010 Statut Membre Dernière intervention 12 octobre 2022 3
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 39632 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 234
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