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

    Aiuto query mysql con MATCH ... AGAINST

    Salve a tutti devo lanciare una query MATCH AGAINST su due tabelle non collegate tra loro...
    deve cercare nei campi NOME, COGNOME della tabella TBELEMENTI e nel campo TITOLO della tabella TBFILM
    non ottengo però i risultati sperati

    eccola qui
    SELECT tbelementi.id as idelemento,tbfilm.id as idfilm,tbfilm.titolo,tbelementi.nome,tbelementi.co gnome,tbelementi.professione, MATCH(tbelementi.nome,tbelementi.cognome,tbfilm.ti tolo) AGAINST('$queryricerca' IN BOOLEAN MODE) AS tot FROM tbelementi,tbfilm WHERE MATCH(tbelementi.nome,tbelementi.cognome,tbfilm.ti tolo) AGAINST ('$queryricerca' IN BOOLEAN MODE) ORDER BY tot DESC LIMIT 0,20

    se inserisco una parola contenuta in un titolo film mi estrae 20 records (quando invece dovrebbe estrarmene solo 1) e poi mi visualizza anche i campi relativi alla tabella tbelementi che però non contengono la parola ricercata

    è la prima volta che mi cimento con questo tipo di query dov'è l'errore ?

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    L'errore è nel fatto che stai facendo una cross join.
    Se le tabelle non sono correlate fra loro non puoi fare una query unica. Al limite puoi provare a fare una UNION, ma devi riuscire a dare una struttura uniforme alla tabella risultato

  3. #3
    avevo anche pensato di spezzare la query in due query distinte una per la tbelementi e l'altra per tbfilm però se poi uno cerca "Laura" e ottengo risultati sia nella tbelementi e tbfilm come posso gestire la situazione !?!?
    ovviamete il casino nasce dal fatto che ho un unico TextBox per l'input

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