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

    Inner join non corretta

    Buon giorno, ho questo problema.Non riesco, tramite l'inner join che posto, ad ottenere un risultato ottimale.

    Questa è la select:
    codice:
    SELECT 	A.RAG_ID_RAPP, A.RAG_COD_IMM, A.RAG_INDIRIZZO, B.CONTR, B.FSC, B.DATA_DIC
    FROM DB_1.RAG_RAPP_GIUR As A
    inner JOIN DB_2.DA_2005_2006 AS B
    where A.RAG_INDIRIZZO like '".$tIndirizzo."%'
    mi tira fuori 52 mila record quando, sulla tabella RAG_RAPP_GIUR ne ho soltanto 182, che ottendo con la select seguente:
    codice:
    select * FROM DB_1.RAG_RAPP_GIUR where RAG_INDIRIZZO_REC like '".$tIndirizzo."%'
    Dov'è che sbaglio?
    Grazie mille...per l'aiuto.

  2. #2
    Ad occhio e croce ci manca
    la ON (chiave comune)


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  3. #3
    allora, si fortunatamente hai ragione ed ho fatto cosi:

    codice:
    SELECT 	A.RAG_ID_RAPP, A.RAG_COD_IMM, A.RAG_INDIRIZZO, B.CONTR, B.FSC, B.DATA_DIC, B.COD_IMM
    FROM DB_1.RAG_RAPP_GIUR As A
    inner JOIN DB_2.DA_2005_2006 AS B
    on A.RAG_COD_IMM = CONCAT(substring(B.COD_IMM,1,1),substring(B.COD_IMM,3,3),substring(B.COD_IMM,7,8))
    where A.RAG_INDIRIZZO like '".$tIndirizzo."%'
    purtroppo, il valore del campo A.RAG_COD_IMM è di 10, invece quello del campo B.COD_IMM
    è da 12.
    Per ovviare ho dovuto eseguire quel CoNCAT substring, per estrapolare i valori che realmente mi servono..

    Adesso, invece di 52mila record me ne estrapola 30 ed è un risultato soddisfacente
    Quindi ti chiedo, adesso com'è strutturata la select è ok, oppure potrei ottimizzarla in qualche modo?
    Perchè in realtà non sò quanti record effettivamente dovrebbe tirarmi fuori..
    Secondo te/voi?
    Grazie ancora...

  4. #4
    non so di cosa si tratta in quel campo da 10 o 12, ma non puoi utilizzare un indice numerico per associare i record delle due tabelle? Utilizzare due campi con diverso contenuto per un'associazione tra tabelle mi pare non troppo ottimizzato (ad essere diplomatici).

    Sarebbe la cosa piu' logica associare i record con un id e forse anche usare una sola tabella se i record sono in relazione uno ad uno.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    magari relazionarli tramite un'ID.
    Purtroppo, le tabelle mi sono state data cosi, e gli unici campi che, apparentemente posso essere relazionati sono, quei due, con le caratteristi già descritte...

    altro non c'è....

  6. #6
    Originariamente inviato da ANTAGONIA
    magari relazionarli tramite un'ID.
    Purtroppo, le tabelle mi sono state data cosi, e gli unici campi che, apparentemente posso essere relazionati sono, quei due, con le caratteristi già descritte...

    altro non c'è....
    l'evoluzione esiste perche' qualcuno migliora il precedente. Altrimenti saremmo ancora li' a scegliere tra la mela ed il serpente.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    lo so, e concordo pienamente, ma se ti danno 'sta monnezza e uno deve scervellarsi per farla funzionare, e ti dicono o cosi o cosi...che fai?

    Puoi parlare con il muro?
    Cmq, vi ringrazio, perchè, siete sempre disponibili.

    Grazie ancora

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