Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    query difficilotta mysql

    Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
    Ho 4 tabelle : Parole,sinonimi,gruppi,appartenenza.
    Nella tabella parole sono contenuti una serie di termini, la tabella sinonimi contiene le relazioni di sinonima che collegano tra loro le parole, nella tabella gruppi sono contenute delle categorie come per esempio informatica elettronica et cetera...nella tabella appartenenza le relazioni di inclusione dei termini ad una determinata categoria.
    Come posso fare per prendere i sinonimi di una parola digitata che appartengono anche alle stesse categorie (possono essere più d'una) alle quali appartiene la parola digitata?
    Ho fatto qualche tentativo ma per ora non mi è venuto nulla di buono.
    Grazie mille!

  2. #2
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Posta la struttura delle tabelle e quello che hai provato a fare altrimenti è quasi impossibile aiutarti

  3. #3
    si scusa hai ragione
    Parole-> campi: id, nome
    Sinonimi->campi: id,id1,id2 (id1 ed id2 sono gli id delle parole)
    Gruppo-> campi: id, nome
    Appartenenza->campi: id,id1,id2 (id1 parole, id2 gruppo)

  4. #4
    qualche aiutino?
    Se incontrerai qualcuno persuaso di sapere tutto e di essere capace di fare tutto, non potrai sbagliare: costui è un imbecille.
    Confucio.

  5. #5
    ho provato con
    codice:
    $sql2 = "SELECT * FROM parole JOIN sinonimi as sin1 ON parole.id=sin1.id1 JOIN sinonimi as sin2 on parole.id=sin2.id2 JOIN appartenenza as ap1 on parole.id=ap1.id1 join appartenenza as ap2 on ap1.id2=ap2.id2 where sin2.id1=$id or sin1.id2=$id AND ap2.id1=$id";
    $result2 = mysql_query($sql2, $db)or die("
    Failed query: $sql2\n
    \n" .mysql_error());
    ma ovviamente non funziona, qualche idea?
    Se incontrerai qualcuno persuaso di sapere tutto e di essere capace di fare tutto, non potrai sbagliare: costui è un imbecille.
    Confucio.

  6. #6
    grazie a tutti quelli che mi hanno aiutato... ho risolto così

    codice:
    SELECT DISTINCT nome FROM parole as parole1 JOIN sinonimi as sin1 ON parole1.id=sin1.id1  JOIN appartenenza as ap1 on parole1.id=ap1.id1 join appartenenza as ap2 on ap1.id2=ap2.id2 where sin1.id2=$id AND ap2.id1=$id UNION SELECT DISTINCT nome FROM parole as parole2 JOIN sinonimi as sin1 ON parole2.id=sin1.id2  JOIN appartenenza as ap1 on parole2.id=ap1.id1 join appartenenza as ap2 on ap1.id2=ap2.id2 where sin1.id1=$id AND ap2.id1=$id
    Se incontrerai qualcuno persuaso di sapere tutto e di essere capace di fare tutto, non potrai sbagliare: costui è un imbecille.
    Confucio.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.