Visualizzazione dei risultati da 1 a 3 su 3

Discussione: SELECT fra due tabelle

  1. #1

    SELECT fra due tabelle

    Ciao a tutti, ho provato a fare una ricerca ma non ho trovato ciò che cerco. Spiego subito: ho due tabelle una

    Codice PHP:
    CREATE TABLE farma_news (
      
    ID_news smallint(6NOT NULL auto_increment,
      
    titolo varchar(255NOT NULL default '',
      
    testo longtext NOT NULL,
      
    fonte varchar(255NOT NULL default '',
      
    data varchar(8NOT NULL default '',
      
    subcat varchar(155NOT NULL default 'news',
      
    PRIMARY KEY  (ID_news),
      
    UNIQUE KEY ID_news (ID_news),
      
    FULLTEXT KEY testo (testo)
    TYPE=MyISAM;

    CREATE TABLE reparti (
      
    ID_reparti smallint(6NOT NULL auto_increment,
      
    cat varchar(255NOT NULL default '',
      
    subcat varchar(255NOT NULL default '',
      
    responsabile varchar(255NOT NULL default '',
      
    testo longtext NOT NULL,
      
    PRIMARY KEY  (ID_reparti),
      
    UNIQUE KEY ID_reparti (ID_reparti),
      
    FULLTEXT KEY testo (testo)
    TYPE=MyISAM
    vorrei poter fare una ricerca fulltext come in questa query che vi metto qui sotto, vorrei farla però su entrambe le tabelle contemporaneamente in modo che mi cerchi la parola sui campi denominati 'testo'

    Codice PHP:
    "SELECT *, testo, MATCH (testo) AGAINST('$word') as score FROM reparti WHERE MATCH(testo) AGAINST('$word') ORDER BY score DESC"
    ho provato con union all ma quando le unisco mi restituisce un errore di sintassi

    Codice PHP:
    "(SELECT *, testo, MATCH (testo) AGAINST('$word') as score FROM reparti WHERE MATCH(testo) AGAINST('$word') ORDER BY score DESC) UNION ALL (SELECT *, testo, MATCH (testo) AGAINST('$word') as score FROM farma_news WHERE MATCH(testo) AGAINST('$word') ORDER BY score DESC) "
    mi sapreste dare un aiutino?
    ciao

  2. #2
    Non so se è quello che vuoi, ma se fai un INNER JOIN tra le due tabelle puoi ricavare il campo di testo di entrambe, poi però non saprei bene come fare la funziona della ricerca.

    Codice PHP:
    "SELECT
        farma_news.testo,
        reparti.testo
        FROM
        farma_news
        INNER JOIN
        reparti
        ORDER by score DESC" 

  3. #3
    Puoi fare union quando proietti su campi dal nome e dal tipo compatibili: lì le due tabelle hanno schemi differenti, prova a togliere quell'*
    GreyFox (Linux registered user #435102)
    greyfox.imente.org - GreyFox's shots (photo gallery)
    $ cd /pub
    $ more beer

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.