Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 36
  1. #1

    Motore di ricerca su più tabelle

    Help me,
    sto cercando di realizzare un motore che mi ricerchi le parole/frasi in più tabelle.
    Esempio: voglio cercare la parola concerto nelle tabelle Eventi, News e Articoli.
    Facendo una query tipo Select Union è un disatro perchè mi moltiplica i risultati, cioè se Eventi contiene 100 record, News 80 record e Articoli 60 record i risultato è 100x80x60 record.
    Come posso fare? Datemi qualche lume.
    Se non sono ancora impazzito è merito Vostro e di questo forum.
    Non vorrei essere nei panni della Marcuzzi, se dentro non c'è la Marcuzzi.

  2. #2
    con la union (se fatta bene) sommi, non moltiplichi! posta la query, che le si dà un'occhiata!

  3. #3
    Alcune segnalazioni:
    1) errore: numero di colonne non corrispondente nelle tabelle
    2) La query è:
    codice:
    "(SELECT * FROM tabella1 WHERE campo1 LIKE = '%" & variabile & "%')" &_
            "UNION (SELECT * FROM tabella2 WHERE campo1 LIKE = '%" & variabile & "%')"
    come da post di Mems Vedi Post
    3) i campi che mi interessano per la ricerca sono di tipo memo
    Se non sono ancora impazzito è merito Vostro e di questo forum.
    Non vorrei essere nei panni della Marcuzzi, se dentro non c'è la Marcuzzi.

  4. #4
    e allora? se trova 2 record nella prima e 4 nella seconda, ti mostra 6 record (2+4), non 8 (2x4)....

  5. #5
    Allora i primi due punti li ho risolti.
    Come faccio a ricavare nella query la tabella di privenienza?
    Cioè io ho tre tabelle News, Articoli, Eventi
    nella query ho bisogno di sapere che il record x proviene dalla tabella News, il record y dalla tabella articoli e il record z dalla tabella eventi.
    Se non sono ancora impazzito è merito Vostro e di questo forum.
    Non vorrei essere nei panni della Marcuzzi, se dentro non c'è la Marcuzzi.

  6. #6
    Originariamente inviato da optime
    e allora? se trova 2 record nella prima e 4 nella seconda, ti mostra 6 record (2+4), non 8 (2x4)....
    va beh nella fretta avevo sbagliato a scrivere (a contare??)
    Se non sono ancora impazzito è merito Vostro e di questo forum.
    Non vorrei essere nei panni della Marcuzzi, se dentro non c'è la Marcuzzi.

  7. #7
    Utente di HTML.it L'avatar di albis
    Registrato dal
    May 2002
    Messaggi
    912
    Originariamente inviato da paolo bosani
    Allora i primi due punti li ho risolti.
    Come faccio a ricavare nella query la tabella di privenienza?
    Cioè io ho tre tabelle News, Articoli, Eventi
    nella query ho bisogno di sapere che il record x proviene dalla tabella News, il record y dalla tabella articoli e il record z dalla tabella eventi.
    select 'TabellaA' as Riconosci , campo 1 , campo2 from tabellaA
    union select 'TabellaB' as Riconosci , campo 1 , campo2 from tabellaB
    Union select 'TabellaC' as Riconosci , campo 1 , campo2 from tabellaC
    Forza la magica ROMA

  8. #8
    Originariamente inviato da paolo bosani
    va beh nella fretta avevo sbagliato a scrivere (a contare??)
    [considerazioni parallele] 'va beh' fino a un certo punto, perché nel primo post QUELLO era IL PROBLEMA! [/considerazioni parallele]

  9. #9
    Ok risolto, grazie a tutti, soprattutto a Optime per la pazienza e a Albis per la risoluzione definitiva.
    Se non sono ancora impazzito è merito Vostro e di questo forum.
    Non vorrei essere nei panni della Marcuzzi, se dentro non c'è la Marcuzzi.

  10. #10
    ho ancora un piccolo problema questa è la query che ho fatto:

    codice:
    SELECT 'Articoli' as Riconosci, Visited,Titolo,Sottotitolo,Testo, IDArticolo as ID FROM Articoli  WHERE Titolo LIKE  '%" & text & "%'   UNION (SELECT 'News' as Riconosci, Visited,Titolo, Sottotitolo,Testo, IDNews as ID FROM News  WHERE Titolo LIKE  '%" & text & "%' )  UNION (SELECT 'Eventi' as Riconosci,Visited, Titolo, Sottotitolo, Testo, IDEvento as ID FROM Eventi WHERE Titolo LIKE  '%" & text & "%')
    ORDER BY visited DESC;
    Il problema è che se faccio una ricerca ad esempio, parola da cercare: "concerto", e se all'interno del record il titolo è: "Il concerto è stato annullato", non mi ritorna i risultati.
    Poi come faccio ad eseguire la ricerca anche nei campi Sottotitolo e Testo, ho provato in diversi modi ma senza risultato, ad esempio con:
    codice:
    WHERE Titolo Or Sottotitolo Or Testo LIKE  '%" & text & "%'
    Se non sono ancora impazzito è merito Vostro e di questo forum.
    Non vorrei essere nei panni della Marcuzzi, se dentro non c'è la Marcuzzi.

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.