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

    JOIN tra Database differenti

    Ciao a tutti,
    ho una query dalla quale non riesco a venire a capo... sono vicino alla soluzione ma troppo stanco per vederla

    Ho 2 database nello stesso server e un motore di ricerca.
    Il sito riguarda delle persone che hanno una professione. Ogni persona ha la sua MA le professioni sono sull'altro database, quindi 1 database con gli utenti e 1 database con le professioni.
    Ora. Sto usando CodeIgniter (che non penso sia un problema ma è giusto inserirlo nel contesto).
    La query sono riuscita a farla prendendo i dati da 2 tabelle dello stesso database (una con gli utenti e una con i dettagli di ogni persona) e la ricerca libera di un utente va a buon fine, trova i dati e siamo a posto così.
    IL PROBLEMA:
    Se un utente cerca una possibile professione nel campo di ricerca questa non la trova in quanto nel database degli utenti ho salvato l'ID della professione, non il testo con la professione, quindi non ci sono corrispondenze e l'utente viene ignorato.

    Esempio:
    - Cerco "Attore" nel motore di ricerca
    - La tabella con gli utenti NON contiene la parola Attore ma l'ID della professione che è 3
    - Nessuna corrispondenza trovata

    Come faccio a fare un simpatico JOIN dal database con le professioni, così da avere la professione al posto dell'ID?

    Per ora vi posto la query che ho creato:

    Codice PHP:
    $sql "SELECT *, 
    MATCH (profili.descrizione, profili.tag, profili.nome_pubblico) AGAINST('"
    .$stringa."' IN BOOLEAN MODE) AS attinenza
    FROM profili
    INNER JOIN utenti ON utenti.id = profili.id_utente
    WHERE
    MATCH(profili.descrizione, profili.tag, profili.nome_pubblico) AGAINST('"
    .$stringa."' IN BOOLEAN MODE)
    AND utenti.attivo = 1
    ORDER BY attinenza DESC"

    dove $stringa è la stringa di ricerca dell'utente.

    Se non sono stato chiaro chiedo venia ma potrei commettere Adobeicidio!
    Attendo un luminare della programmazione
    Ce l'ho fatta! - ItalianPixel -

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,135
    Non è che ci voglia un luminare. Basta aggiungere il nome del database davanti a quello della tabella (db.tabella).
    Sempre che tu stia usando mysql, visto che ti sei guardat(o/a) bene dallo specificarlo.

  3. #3
    vale anche per mssql

  4. #4
    In effetti l'ho dato per scontato... MySQL.
    Il nome del database davanti? Tutto qui? E per "parsare" l'id come fosse testo? Ovvero includerlo nella ricerca come fosse un campo testo?
    Ce l'ho fatta! - ItalianPixel -

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