Joindre plusieurs tables
Résolu
select
-
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
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
A voir également:
- Joindre plusieurs tables
- Tables des matières word - Guide
- Impossible de joindre un fichier sur ants - Forum Yahoo mail
- Tables ascii - Guide
- Comment joindre quelqu'un qui est en mode avion ✓ - Forum Nokia
- Joindre pdf - Guide
2 réponses
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 :
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 :
Xavier
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