• User Attivo

    Query che non funziona... AIUTO!!!

    ciao a tutti!

    in mysql ho queste tabelle:

    [tab_offerte]

    id_offerta | data_attivo | data_fine

    [tab_prenotazioni]

    id_prenotazione | id_offerta | codice

    devo fare una query che:

    estragga da [tab_offerte] tutte le offerte attive al momento (e ci sono riuscito) e che nel contempo verifichi che in [tab_prenotazioni] non sia presente il "id_weekend" = "2"

    quindi eseguo:

    SELECT * FROM tab_offerte LEFT JOIN tab_prenotazioni ON '2008-01-18' BETWEEN date_format( data_attivo , '%Y-%m-%d' ) AND date_format( data_fine , '%Y-%m-%d' ) AND tab_offerte.id_offerta = tab_prenotazioni.id_offerta AND id_weekend <> 2

    MA NON FUNZIONA! ESTRAE TUTTE LE OFFERTE! anche quella che ha id_weekend uguale a 2!

    Come mai? mi sapete aiutare? sono in palle!!😢


  • Consiglio Direttivo

    Ciao henry78 e benvenuto nel Forum GT 😉

    nelle tabelle da te indicate non vedo il campo id_weekend :mmm:

    Se la tua struttura è quella ovviamente non esistendo quel campo, non viene considerato.
    Se intendi che il tuo codice ti debba estrarre i dati quando l'id_offerta è diversa da 2 (offerta relativa al weekend) allora dovrai sostituire id_weekend con id_offerta, i campi van sempre chiamati con il loro nome 😉

    [php]$sql="SELECT * FROM tab_offerte LEFT JOIN tab_prenotazioni ON '2008-01-18' BETWEEN date_format( data_attivo , '%Y-%m-%d' ) AND date_format( data_fine , '%Y-%m-%d' ) AND tab_offerte.id_offerta = tab_prenotazioni.id_offerta AND id_offerta <> 2";[/php]
    Prova un po' a vedere se funziona così 😉


  • User Attivo

    ciao! e grazie.

    il problema purtroppo non dipende dal nome del campo sbagliato..

    le tabelle sono così:

    [tab_offerte]
    id_offerta | data_attivo | data_fine

    [tab_prenotazioni]
    id_prenotazione | id_offerta | id_weekend

    in pratica devo estrarre tutti i dati di [tab_offerte] compresi nel periodo "data_attivo" e "data_fine" inoltre devo verificare che id_offerta della tabella [tab_prenotazioni] (se presente) abbia il campo "id_weekend" diverso da 2.

    • la query che ho postato sopra mi sembra "logicamente" corretta... e invece estrae il record anche se il campo "id_weekend" è valorizzato a 2...

    riesci a darmi una dritta?