apprécierais aide sur requete [MySQL-résolu] - SQL/NoSQL - Programmation
Marsh Posté le 03-11-2003 à 18:55:36
version brouillon:
select id, url, sitefr
from site, langue l1, langue l2
where site.id=l1.id_site
and l1.id_langue=1
and l1.id_site=l2.id_site
and l2.id_langue=2
Marsh Posté le 03-11-2003 à 23:23:38
j'ai pas bien compris ce que tu cherches à faire.
mettons que je désire un site contenant le mot "mysql" dans le nom et qui soit soit fr soit en.
Mettons que dans la base t'as 10 sites contenant ce mot, dont 4 en fr, 2 en it, 2 en en, 1 en de, et 1 à la fois en fr et en en.
Tu veux quoi comme résultat ?
site 1 (fr)
site 2 (fr)
site 3 (fr)
site 4 (fr)
site 5 (en)
site 6 (en)
site 7 (fr/en)
C'est ça ? (les valeurs entre parenthèse ne sont pas affichée)
A ce moment, ta requête me semble bonne non ? Elle retourne quoi ?
Marsh Posté le 04-11-2003 à 08:35:21
->Merchi Gizmo, c'est parfait.
(j'avais tenté un truc du genre, sans penser à refaire le ln.id_site=sites.id à chaque fois, sot que je suis).
->Magic : le but était de choisir 1 à 4 langues, mais combinées par ET plutôt que OU
Marsh Posté le 03-11-2003 à 18:10:33
Soit un annuaire de sites
Avec
-1 table sites (id, url, sitefr...)
-1 table langue_site (id_langue, id_site) où id_site correspond à id de la table sites et id_langue a des valeurs de 1 à 4 (fr-de-it-en, classique)-> il peut y avoir jusqu'à 4X le même id_site dans cette table.
Parmi les possibilités de recherche, j'aimerais pouvoir proposer une recherche permettant de combiner les langues (genre : site fr/de, fr/it/en)...
Pour l'instant, je n'ai pas pu faire mieux que ça
(je n'ai mis que la partie concernant la langue, la recherche se fait aussi sur d'autres champs de la table sites).
Suis relativement pive au niveau SQL, -> si vous aviez une piste...
Message édité par deliriumtremens le 04-11-2003 à 08:35:36