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

    Intersezione tra i risultati di 2 query

    Come posso fare l'intersezione tra i risultati di queste 2 query?

    codice:
          $sql_1=@mysql_query($query_keywords);
          $sql_2=@mysql_query($query_autori);
    In entrambi questi array vengono estratti gli ID, io volevo ottenere un array con solo gli ID in comune...

    Pensavo che trasformando i risultati in array, in questo modo
    codice:
    $ricerca_sql_1=mysql_fetch_array($sql_1);
    poi sarei riuscita nel mio intento, ma no!

    Ho già cercato di fare un'unica query ma si tratta di query complesse e non sono riuscita

    Se può servire le query sono così(alcuni dei valori nella query sono delle variabili)

    prima query
    codice:
    SELECT `Fonti`.`ID`, `Fonti`.`Titolo`, `Fonti`.`formato`, `Fonti`.`Anno`, GROUP_CONCAT( `Parole_chiave`.`keyword` ORDER BY `Parole_chiave`.`keyword` ASC SEPARATOR ', ')
    
    FROM `Fonti`
    
    INNER JOIN `Assegnazione_parole_chiave` ON `Fonti`.`ID` = `Assegnazione_parole_chiave`.`fonteid`
    INNER JOIN `Parole_chiave` ON `Parole_chiave`.`ID` = `Assegnazione_parole_chiave`.`keywordid`
    INNER JOIN `Autori` ON (`Autori`.`ID` = `Fonti`.`autore_2id` OR `Autori`.`ID` = `Fonti`.`autore_1id`)
    
    WHERE ( 1 
            AND (`Fonti`.`Titolo` LIKE '%CRISM%')
            AND (`Fonti`.`Anno` < 2010) 
            AND (`Fonti`.`Anno` > 2000)
            AND (`Autori`.`ID` IN (75, 1))
           )
    GROUP BY `Fonti`.`ID`
    seconda query
    codice:
    SELECT `Fonti`.`ID`, `Fonti`.`Titolo`, `Fonti`.`formato`, `Fonti`.`Anno`, GROUP_CONCAT( `Autori`.`Nome_Autore` ORDER BY `Fonti`.`autore_1id` SEPARATOR ', ')
    
    FROM `Fonti`
    
    INNER JOIN `Autori` ON (`Autori`.`ID` = `Fonti`.`autore_2id` OR `Autori`.`ID` = `Fonti`.`autore_1id`)
    INNER JOIN `Assegnazione_parole_chiave` ON `Fonti`.`ID` = `Assegnazione_parole_chiave`.`fonteid`
    
    WHERE ( 1 AND (`Assegnazione_parole_chiave`.`keywordid` IN (75, 123)) )
    
    GROUP BY `Fonti`.`ID`
    POTETE AIUTARMI?

  2. #2
    Dai un'occhiata alla funzione per vedere se fa al caso tuo

    array_intersect_assoc()

    restituisce le intersezioni tra 2 array associativi (confrontando la "chiave", per esempio "ID").

    Ciao

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.