Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    28

    Problema con query Join

    Buonasera e salve a tutti,

    ho un problema "informatico",
    riguarda una query in sql..ci sto sbattendo la testa javascript:void(0);
    Mannaggia li pescetti ma non riesco a trovare la soluzione..

    il problema è questo:

    2 db ognuno con una tabella:

    -db1 con tabella "clienti"(anagrafiche dei clienti)
    con un codice identificativo e tutti i dati tra cui ragione_sociale;

    -db2 con tabella "cliestco"(movimenti e transazioni effettuate dai clienti)
    con un codice identificativo che è formato da 9 caratteri:le prime 4 sono cifre, le rimanenti 5 è il codice contenuto anche in db1.clienti.codice

    devo tirare fuori una query che abbia come risultato db2.cliestco.codice e la ragione sociale associata che si trova però in db1.clienti..

    il problema è che db1.clienti.codice e db2.cliestco.codice sono diversi in quanto solo la parte finale del codice di db2.cliestco è uguale al codice di db1.clienti.codice.

    es. db1.clienti.codice è tipo 'bcch1' a cui è associato db1.clienti.ragione_sociale che è pippo

    il movimento registrato in db2.clienti.codice è qualcosa del tipo '1002bcch1'

    io vorrei che risultasse una query con '1002bcch1' e associata la ragione sociale 'pippo'

    ho provato a fare una cosa del genere:

    SELECT DISTINCT db2.cliestco.codice, db1.clienti.ragione_sociale1
    FROM db2.cliestco
    LEFT JOIN db1.clienti ON db2.cliestco.codice = db1.clienti.codice
    WHERE db1.clienti.codice LIKE '%db2.cliestco.codice'

    Ma la query non produce nessuna riga.....javascript:void(0);
    Piange

    Potete aiutarmi???javascript:void(0);javascript:void(0);
    Ma LOL
    Confused

    Grazie comunque per il tempo dedicato a leggere il post...




    La mente è come un paracadute..funziona solo se si apre!

  2. #2
    prova con RIGHT():

    Codice PHP:
    SELECT 
        DISTINCT db2
    .cliestco.codice
        
    db1.clienti.ragione_sociale1
    FROM 
        db2
    .cliestco
            LEFT JOIN db1
    .clienti ON db2.cliestco.codice RIGHT(db1.clienti.codice9)
    WHERE 
        db1
    .clienti.codice LIKE '%db2.cliestco.codice' 
    Qualunque imbecille può inventare e imporre tasse. (Maffeo Pantaleoni)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    28

    Non funziona..

    Grazie Webus,

    ho provato ma non funziona...

    Quale potrebbe essere il problema??


    Grazieeee!!
    La mente è come un paracadute..funziona solo se si apre!

  4. #4

    Re: Problema con query Join

    Originariamente inviato da gbc85
    -db1 con tabella "clienti"(anagrafiche dei clienti)
    con un codice identificativo e tutti i dati tra cui ragione_sociale;

    -db2 con tabella "cliestco"(movimenti e transazioni effettuate dai clienti)
    con un codice identificativo che è formato da 9 caratteri:le prime 4 sono cifre, le rimanenti 5 è il codice contenuto anche in db1.clienti.codice

    devo tirare fuori una query che abbia come risultato db2.cliestco.codice e la ragione sociale associata che si trova però in db1.clienti..
    Ti avevo indicato una funzione che ti permette di estrarre solo una certa parte della colonna, non mi ero fermato ad analizzare le tabelle, contavo che lo facessi tu.

    Comunque, stando a quanto hai scritto sopra, la query corretta dovrebbe essere:
    Codice PHP:
    SELECT
        clienti
    .ragione_sociale1,
        
    cliestco.codice
    FROM
        db1
    .clienti as clienti
            LEFT JOIN db2
    .cliestco as cliestco ON clienti.codice RIGHT(cliestco.codice5)
    WHERE
        cliestco
    .codice '1002bcch1' 
    in pratica, con la funzione RIGHT(cliestco.codice, 5) indichi alla query di limitare il confronto sulle prime 5 lettere di cliestco.codice partendo da destra.

    http://dev.mysql.com/doc/refman/5.0/...function_right

    PS. nota che usare una funzione nella clausola di ricerca comporta delle penalizzazioni per le performance oltre che indice di tabella non normalizzata, se le tabelle contengono diversi record dovresti rivedere il design del database.
    Qualunque imbecille può inventare e imporre tasse. (Maffeo Pantaleoni)

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    28

    Grazie..

    Grazie webus per la pazienza e la disponibilità...

    unico comportamento strano è che dalla query risulta una riga con valore NULL nella colonna codice ma con nome nella colonna ragione sociale. per il resto a ogni codice corrisponde la rispettiva ragione sociale..

    Grazie..
    La mente è come un paracadute..funziona solo se si apre!

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.