Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di mdx92
    Registrato dal
    Sep 2007
    Messaggi
    116

    Query con WHERE su seconda tabella

    Ragazzi ho letto parecchie cose, tra JOIN ecc, ma non mi è chiaro le guide sono molto vaghe.

    Per spiegarmi io devo fare una query che preleva dei dati da una tabella (tab1) poi nel controllo WHERE deve confrontore la data odierna, con la data contenuta in una seconda tabella (tab2).

    Stamperò a video solo i dati della tab1, la tab2 la richiamo solo per il controllo WHERE.

    Ho provato con:

    Codice PHP:
    <?

    $data_odierna 
    date("d-m-Y");

    $query "SELECT campo1, campo2 FROM tab1 WHERE tab2.data_db<='".$data_odierna."' ORDER BY id DESC LIMIT 5";

    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    devi inserire le tabelle nella clausola FROM (nel tuo esempio FROM tab1,tab2) e normalmente aggiungere una condizione di "collegamento" tra le due tabelle (di quale record della tab2 staresti leggendo il campo nel tuo esempio?)... come sono "collegate" le due tabelle?

    Se NON ci fosse un collegamento tra le due tabelle (es. la tab2 registra dei dati "generici" di configurazione) allora fai prima una SELECT su tab2 per ricavare il dato che ti serve e poi lo usi nella seconda SELECT su tab1

  3. #3
    Utente di HTML.it L'avatar di mdx92
    Registrato dal
    Sep 2007
    Messaggi
    116
    Originariamente inviato da eiyen
    devi inserire le tabelle nella clausola FROM (nel tuo esempio FROM tab1,tab2) e normalmente aggiungere una condizione di "collegamento" tra le due tabelle (di quale record della tab2 staresti leggendo il campo nel tuo esempio?)... come sono "collegate" le due tabelle?

    Se NON ci fosse un collegamento tra le due tabelle (es. la tab2 registra dei dati "generici" di configurazione) allora fai prima una SELECT su tab2 per ricavare il dato che ti serve e poi lo usi nella seconda SELECT su tab1
    si purtroppo NON ci sono collegamenti, quindi mi tocca fare per forza due SELECT! Ti ringrazio!

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    non ho ben capito come usi la data presa da tab2 per la select in tab1... fai cmq un controllo su qualche campo? altrimenti non ha molto senso, mi pare...

  5. #5
    Utente di HTML.it L'avatar di mdx92
    Registrato dal
    Sep 2007
    Messaggi
    116
    Originariamente inviato da eiyen
    non ho ben capito come usi la data presa da tab2 per la select in tab1... fai cmq un controllo su qualche campo? altrimenti non ha molto senso, mi pare...
    Si, effettuo un controllo.

    In pratica mi deve stampare a video i dati della tab1 solo quando uno dei valori della tab1 è unguale ad uno contenuto nella tab2.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ... fai un esempio con dei campi: perchè in questo caso dovresti poter fare un'unica SELECT incrociando i campi da confrontare, appunto

  7. #7
    Utente di HTML.it L'avatar di mdx92
    Registrato dal
    Sep 2007
    Messaggi
    116
    Originariamente inviato da eiyen
    ... fai un esempio con dei campi: perchè in questo caso dovresti poter fare un'unica SELECT incrociando i campi da confrontare, appunto
    Scusami prima mi ero impicciato, il confronto lo devo fare tra il valore contenuto in TAB2 e una variabile esterna, data_odierna. Di seguito un struttura semplice del DB e della query che ho utilizzato, ma senza successo.

    TAB1
    codice:
    ID   |   TESTO   |   AUTORE   |
    TAB2
    codice:
    ID   |   DATA2   |

    Codice PHP:
    $data_odierna date("d-m-y");

    query="SELECT testo, autore FROM tab1 WHERE tab2.data2<='".$data_odierna."'"

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    allora sono due query separate nel tuo caso (suppongo ID siano degli id autoinc)

  9. #9
    Utente di HTML.it L'avatar di mdx92
    Registrato dal
    Sep 2007
    Messaggi
    116
    Originariamente inviato da eiyen
    allora sono due query separate nel tuo caso (suppongo ID siano degli id autoinc)
    si autoincrement

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    sì... due select direi che è la cosa più semplice

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.