Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di eraclito
    Registrato dal
    May 2002
    Messaggi
    1,273

    join su parti di chiavi

    ciao

    dovrei fare una query del genere:
    Codice PHP:
    select from tabella1 inner join tabella2 on primi_tre_caratteri(campo1)=primi_tre_caratteri(campo2
    ovvero fare un join con un confronto solo su parte dei campi coinvolti
    è possibile?
    e sapete indicarmi la corretta sintassi?



    eraclito
    L'apprendere molte cose non insegna l'intelligenza
    Voglio avere dubbi più chiari

  2. #2
    Utente di HTML.it L'avatar di eraclito
    Registrato dal
    May 2002
    Messaggi
    1,273

    Re: join su parti di chiavi

    Originariamente inviato da eraclito
    ciao

    dovrei fare una query del genere:
    Codice PHP:
    select from tabella1 inner join tabella2 on primi_tre_caratteri(campo1)=primi_tre_caratteri(campo2
    ovvero fare un join con un confronto solo su parte dei campi coinvolti
    è possibile?
    e sapete indicarmi la corretta sintassi?



    eraclito
    :master:
    L'apprendere molte cose non insegna l'intelligenza
    Voglio avere dubbi più chiari

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    per prendere un tot di caratteri serve substring.
    http://dev.mysql.com/doc/refman/4.1/...functions.html

    per il resto non ho la minima idea di ciò che vuoi fare.

  4. #4
    Utente di HTML.it L'avatar di eraclito
    Registrato dal
    May 2002
    Messaggi
    1,273
    Originariamente inviato da nicola75ss
    per prendere un tot di caratteri serve substring.
    http://dev.mysql.com/doc/refman/4.1/...functions.html

    per il resto non ho la minima idea di ciò che vuoi fare.

    ok ora funziona così:

    Codice PHP:
    select from tabella1 inner join tabella2 on SUBSTRING(tabella1.campo1,1,3)=SUBSTRING(tabella2.campo2,1,3
    e teoricamente va.

    il problema è che ho tabelle grossine (> un milione di record)
    sui campi ho fatto degli indici (index), ma visti i tempi della query mi sembra che utilizzando parte del campo non va.
    C'è un modo di indicizzare solo la parte utilizzata per il confronto?
    sarebbe + utile un indice fulltext

    grazie
    L'apprendere molte cose non insegna l'intelligenza
    Voglio avere dubbi più chiari

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.