Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506

    Ricerca - query su + tabelle collegate (problema ostico)

    Ciao a tutti. Sto impazzendo per effettuare una query, che ormai non so più se possibile; in sostanza, ho tre tabelle, una variabile, e devo effettuare una ricerca nel campo "campoDES" e ordinare il risultato in ordine alfabetico per tale campo.
    Le tabelle sono colegate tra loro con un campo comune; il tutto come di seguito.
    In pratica, lo scopo è trovare in quale records, in campoDES è presente la frase "chiave di ricerca" ma la ricerca deve essere fatta solo nei records in cui campoAG=15, poi leggo campoDAN e controllo che i records che ne contengono il valore nella successiva tabella e così via.

    variabile per campoDES="chiave di ricerca"
    variabile per campoAG="15"

    TABELLA_DAG
    -> campoAG
    -> campoDAN

    TABELLA_SAL
    -> campoDAN
    -> campoMAN

    TABELLA_CFAN
    -> campoMAN
    -> campoDES
    Esiste un modo?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Utilizza una query INNER JOIN.
    Cerca sul forum ci sono decine di esempi utili.

  3. #3
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    Ok, faccio una ricerca. Sinceramente non avevo mai utilizzata l'INNER JOIN. In ogni caso allego un'immagine che stavo preparando nel farttempo per semplificare il problema se mai servisse.

  4. #4
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    Purtroppo non riesco a capire la logica di questa funzione; sto provando con la suente sql; qualcuno mi darebbe una mano per raddrizzarla? mi sembra un po' sballata:

    SELECT TABELLA_DAG.ecc. FROM [TABELLA_DAG] INNER JOIN TABELLA_DAG ON campoAG='15' INNER JOIN TABELLA_DAG ON campoDAN.TABELLA_SAL = campoMAN.TABELLA_SAL INNER JOIN TABELLA_SAL ON campoMAN.TABELLA_SAL = campoMAN.TABELLA_CFAN WHERE TABELLA_CFAN.campoDES = 'parola cercata'

  5. #5
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    Proprio non riesco a districarmi; qualcuno riesce ad darmi qualche dritta?

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2000
    Messaggi
    90

    prova così.

    ciao gim, prova con la sintassi seguente :

    select TABELLA_CFAN.campoDES
    from TABELLA_DAG,
    TABELLA_SAL,
    TABELLA_CFAN
    where TABELLA_DAG.campoAG = variabileAG and
    TABELLA_SAL.campoDAN = TABELLA_DAG.campoDAN and
    TABELLA_CFAN.campoMAN = TABELLA_SAL.campoMAN

    roby.

  7. #7
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    Ciao Roby.

    In verità sono quasi arrivato ad una soluzione con un suggerimento di morpheusweb.it, con la seguente query; unico problema è che mi stampa i risultati più volte; cioè mi ritrovo con un elenco in cui, ad esempio, il record 4 è ripetuto tre volte, il 10 2 volte ecc. Ho tuttavia provato anche la tua query che mi dà <<Item cannot be found in the collection corresponding to the requested name or ordinal>> e sto cercando di capire quale nome di campo avrei sbagliato, ma mi pare nessuno. Ora comunque lo sto ricontrollando e riprovando.

    SELECT *
    from
    (
    TABELLA_DAG
    inner join TABELLA_SAL on TABELLA_DAG.campoDAN = TABELLA_SAL.campoDAN
    )
    inner join TABELLA_CFAN on TABELLA_SAL.campoMAN = TABELLA_CFAN.campoMAN
    where TABELLA_DAG.campoAG='15' and TABELLA_CFAN.campoDES like '%KEY%'

  8. #8
    Se usi un db Access, scarica il db in locale, aprilo con Access, crea una nuova query in modalità struttura e crea tutti i legami tra le tabelle che vuoi, i criteri e quant'altro. Passa poi alla visualizzazione SQL e ti trovi la query già pronta.
    Se invece non usi Access, creati un mini db access in locale e poi ti crei la query.

    Questo ti serve per comprendere il funzionamento dell'INNER JOIN (oltre ad avere già la query praticamente fatta).

  9. #9
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    In effetti è un db access.Ora provo.
    Grazie

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 © 2024 vBulletin Solutions, Inc. All rights reserved.