Joindre plusieurs tables

Résolu
select -  
 select -
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 3742 Statut Membre 1 011
 
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
select
 
c'est exactement ça merci !
0