Selectionner 3 tables d'une base2données?
Fermé
linda.zazy
Messages postés
297
Date d'inscription
dimanche 30 mars 2008
Statut
Membre
Dernière intervention
2 février 2017
-
Modifié par linda.zazy le 27/05/2010 à 00:00
linda.zazy Messages postés 297 Date d'inscription dimanche 30 mars 2008 Statut Membre Dernière intervention 2 février 2017 - 27 mai 2010 à 12:35
linda.zazy Messages postés 297 Date d'inscription dimanche 30 mars 2008 Statut Membre Dernière intervention 2 février 2017 - 27 mai 2010 à 12:35
A voir également:
- Selectionner 3 tables d'une base2données?
- Picasa 3 - Télécharger - Albums photo
- Comment faire une table des matières sur word - Guide
- Ai suite 3 download - Télécharger - Optimisation
- Photorecit 3 - Télécharger - Visionnage & Diaporama
- Sélectionner texte pdf - Guide
2 réponses
Salut
Le plus simple pour ton cas semble être une "addition" des résultats dans news avec les résultats dans faune et les résultats dans flore. Mais attention, pour réaliser une telle "addition" les structures des tables (ou tout du moins leurs projections) doivent être identiques
Si c'est le cas, ta requête doit alors être l'union des 3 résultats :
SELECT * FROM news WHERE nom LIKE '%$requete%' ORDER BY id DESC
UNION
SELECT * FROM flore WHERE nom LIKE '%$requete%' ORDER BY id DESC
UNION
SELECT * FROM faune WHERE nom LIKE '%$requete%' ORDER BY id DESC
le seul pb de cette syntaxe est que tu aurais d'abord les résultats de news puis ceux de flore puis ceux de faune.
Si tu veux mélanger tous ces résultats pour ensuite les trier par ID, il faut alors considérer cette union comme base pour une requête de niveau supplémentaire :
SELECT * FROM (
SELECT * FROM news WHERE nom LIKE '%$requete%'
UNION
SELECT * FROM flore WHERE nom LIKE '%$requete%'
UNION
SELECT * FROM faune WHERE nom LIKE '%$requete%'
) ORDER BY id DESC
et voilà ! j'espère être pas trop loin de ce que tu voulais...
Le plus simple pour ton cas semble être une "addition" des résultats dans news avec les résultats dans faune et les résultats dans flore. Mais attention, pour réaliser une telle "addition" les structures des tables (ou tout du moins leurs projections) doivent être identiques
Si c'est le cas, ta requête doit alors être l'union des 3 résultats :
SELECT * FROM news WHERE nom LIKE '%$requete%' ORDER BY id DESC
UNION
SELECT * FROM flore WHERE nom LIKE '%$requete%' ORDER BY id DESC
UNION
SELECT * FROM faune WHERE nom LIKE '%$requete%' ORDER BY id DESC
le seul pb de cette syntaxe est que tu aurais d'abord les résultats de news puis ceux de flore puis ceux de faune.
Si tu veux mélanger tous ces résultats pour ensuite les trier par ID, il faut alors considérer cette union comme base pour une requête de niveau supplémentaire :
SELECT * FROM (
SELECT * FROM news WHERE nom LIKE '%$requete%'
UNION
SELECT * FROM flore WHERE nom LIKE '%$requete%'
UNION
SELECT * FROM faune WHERE nom LIKE '%$requete%'
) ORDER BY id DESC
et voilà ! j'espère être pas trop loin de ce que tu voulais...
linda.zazy
Messages postés
297
Date d'inscription
dimanche 30 mars 2008
Statut
Membre
Dernière intervention
2 février 2017
16
27 mai 2010 à 12:35
27 mai 2010 à 12:35
bonjour, merci !
j'ai éssayé ton script regarde le messsage d'érreur:
Every derived table must have its own alias
qu'est ce que ça veut dire?
j'ai éssayé ton script regarde le messsage d'érreur:
Every derived table must have its own alias
qu'est ce que ça veut dire?