Joindre plusieurs tables

Résolu/Fermé
select - Modifié par select le 10/10/2014 à 11:48
 select - 10 oct. 2014 à 15:17
Bonjour,


je voudrais joindre plusieurs tables mais ça fail

SELECT * FROM vente,location WHERE vente.title LIKE '%$search%' OR location.title LIKE '%$search%'

en gros j'ai le nombre de résultats voulu, mais ça m'affiche toujours le même title, parce exemple avec la recherche"c"j'ai 7 résultats, les 7 résultats seront présent mais seront identiques, alors que je devrais avoir "coucou","cou" etc

j espere avoir été assez clair

2 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
10 oct. 2014 à 14:52
Bonjour,

J'ai l'impression que ce n'est pas une jointure, mais une union que tu recherches.
Joindre deux tables, c'est mettre en relation des lignes entre elles, sur un critère défini.

Là, tu veux plutôt agréger les résultats de deux requêtes distinctes :
SELECT * FROM vente WHERE title LIKE '%$search%'
SELECT * FROM location WHERE title LIKE '%$search%'

Pour faire ça, il faut utiliser UNION ALL :
SELECT * FROM vente WHERE title LIKE '%$search%'
UNION ALL
SELECT * FROM location WHERE title LIKE '%$search%'

Cela ne fonctionnera que si les tables ont la même structure.
Si ce n'est pas le cas, il te faudra choisir un sous-ensemble des colonnes, qui ont la même structure.
Par exemple :
SELECT id, title FROM vente WHERE title LIKE '%$search%'
UNION ALL
SELECT id, title FROM location WHERE title LIKE '%$search%'


Xavier
0
c'est exactement ça merci !
0