- Home
- Categorie
- Coding e Sistemistica
- PHP
- Query che non funziona... AIUTO!!!
-
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 <> 2MA NON FUNZIONA! ESTRAE TUTTE LE OFFERTE! anche quella che ha id_weekend uguale a 2!
Come mai? mi sapete aiutare? sono in palle!!
-
Ciao henry78 e benvenuto nel Forum GT
nelle tabelle da te indicate non vedo il campo id_weekend
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ì
-
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_weekendin 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?