begin process at 2012 02 13 16:08:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Bases de données

 > 

TRIER une requette avec des jointures ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

TRIER une requette avec des jointures ?

samedi 6 août 2005 à 13:29:37 | TRIER une requette avec des jointures ?

okaneganai

Bonjour à tous.
Voilà j'ai une petite question. J'ai la requête suivante:

[code]$query_tout="SELECT id,fr,jp,romaji,kana FROM vocabulaire WHERE ";
    $query_tout.="msearch='".$mot_noAccent."'  ";//FR exact
    $query_tout.="OR jp='".$mot."'  ";//JP exact
    $query_tout.="OR romaji='".$mot_romaji."'  ";//ROMAJI exact
    $query_tout.="OR kana='".$mot."'  ";//KANA exact
    //--//
    $query_tout.="OR msearch LIKE'".$mot_noAccent." %' ";//FR en première position
    //--//
    $query_tout.="GROUP BY id ORDER BY LENGTH(fr) ASC LIMIT 3000 ";[/code]

Et je voudrait pouvoir ordonner mes résultats de la manière suivante:
afficher d'abord les résultats pour [b]msearch='".$mot_noAccent."'[/b], puis ceux pour [b]jp='".$mot."' [/b], ensuite ceux pour [b]romaji='".$mot_romaji."'[/b] etc...
est-ce possible de faire ça en une seule requête?
J'ai essayé en faisant des jointures, mais je ne suis pas sur de ma syntaxe ni du résultat:

(exemple pour rechercher le mot "chat")

SELECT id, fr, jp, romaji, kana
FROM vocabulaire Tout

INNER JOIN (
SELECT id AS id_fr
FROM vocabulaire
WHERE msearch = 'chat'
ORDER BY LENGTH( msearch ) ASC
LIMIT 3000
)Tfr ON Tfr.id_fr = Tout.id
 
INNER JOIN (
SELECT id AS id_jp
FROM vocabulaire
WHERE jp = 'chat'
ORDER BY LENGTH( jp ) ASC
LIMIT 3000
)Tjp ON Tjp.id_jp = Tout.id

INNER JOIN (
SELECT id AS id_fr2
FROM vocabulaire
WHERE msearch LIKE 'chat %'
ORDER BY LENGTH( msearch ) ASC
LIMIT 3000
)Tfr2 ON Tfr2.id_fr2 = Tout.id

ORDER BY id_fr, id_jp, id_fr2 ASC
LIMIT 3000

Quelqu'un pourrait-il m'aider??
Merci d'avance !




samedi 6 août 2005 à 14:12:13 | Re : TRIER une requette avec des jointures ?

okaneganai

Je me réexplique.
Voici ma requête de base:

SELECT id, fr, jp, romaji, kana
FROM vocabulaire
WHERE
fr = 'chat'
OR jp = 'chat'
OR romaji = 'chat'
OR kana = 'chat'
GROUP BY id
ORDER BY LENGTH( fr ) ASC
LIMIT 3000

Dans un premier temps, je veux rechercher un mot dans tout ces champs, mais il faut absolument ordonner les résultats de façon à ce qu'apparraissent d'abord les mots trouvés dans FR, puis ceux trouvés dans JP, puis ceux trouvés dans KANA, puis ceux trouvés dans ROMAJI.

C'est possible?
samedi 6 août 2005 à 19:34:38 | Re : TRIER une requette avec des jointures ?

Anthomicro

Salut,

bah avec plusieurs "arguments" à ORDER :

ORDER BY champ1 ASC,champ2 DESC,champ3 ASC

par exemple...




    Cette discussion est classée dans : mot, id, query, jp, romaji


    Répondre à ce message

    Sujets en rapport avec ce message

    Ma Bdd 'clignote'... Fonctionne, fonctionne pas... [ par larrieu ] Bonjour,Je suis un peu dépassé...Ma bdd sur mysql comprend une table annonce, des champs idannonce, sujet, message, pseudo (de l'auteur),mail (de l'au Petit problème surmontable insurmonté [ par dcbastien ] Voici ce que j'ai mis au point qui est quelque chose de très simple:if( isset( $_GET['action'] ) ){ $action = $_GET['action'];}else $action = "";switc problème de session [ par guendouf ] Bonjour,je poste 2 scripts, j'aimerai qu'on m'aide et qu'on m'explique pourquoi j'arrive pas à me connecter:1)session.php// On inclut le fichier de co pb : Afficher le nombre de commentaire [ par punkcity ] Bonjour, J'ai un petit (enfin un gros depuis le temps ou je suis dessus) problème. J'ai réalisé une page dynamique ou je recupere des info d'une table prb pagination pages commentaires [ par dtbfefe ] Bonjour à tous ,J'ai une page commentaire assez complète pour ce dont j'ai besoin et mon dernier ajout concerne la pagination des commentaires limiter Probleme avec une reqête MySQL [ par webkiller51 ] Bonjour, J'explique la situation. Je dispose d'une base avec une table appelée idees Elle ce présente comme suit : Cliquez ici Le champ "id" est e problème avec doublon dans ma classe de base de donnée [ par Dyr3e ] bonjour, j'ai un problème de Doublon avec la classe pour les base de donnée que j'utilise. Je n'arrive pas a trouver d'ou cela viens mais j'obtiens su Up-load de 2 photos [ par jaco13 ] Bonjour!Voici le code de la page "ajoutvehicule1.inc.php" d'un site de voitures. La partie en noire est la partie avec la requête qui sert à insérer u Qqun voit un probleme dans ces lignes ? [ par Teclis01 ] Voici le probleme: il m affiche que le premier nom correspondant a un id et les suivant non!Dans le tableau, j ai:-toutes les id-tous les recipients-A Fonction include sql dans un objet [ par achovovich ] Bonjour,Je debute avec les objet en PHP et la je bloc sur une fonction qui fait un insert sqlAlors le select marche tres bien, mais l'insert ne veu pa


    Nos sponsors


    Sondage...

    Comparez les prix

    CalendriCode

    Février 2012
    LMMJVSD
      12345
    6789101112
    13141516171819
    20212223242526
    272829    

    Consulter la suite du CalendriCode

    Photothèque

     
    Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
    CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
    CodeS-SourceS.com© est une marque déposée tous droits réservés

    Google Coop CodeS-SourceS Google Coop CodeS-SourceS
    Temps d'éxécution de la page : 1,154 sec (4)

    Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales