dunque ho due tabelle
codice:CREATE TABLE IF NOT EXISTS `#__turnipersonaledipendenti` ( `id` int(11) unsigned NOT NULL auto_increment, `dipendente_nome_cognome` varchar(255) NOT NULL default '', `dipendente_orario_contrattuale_settimanale` int(11) unsigned NOT NULL default '0', `checked_out` int(11) NOT NULL default '0', `checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00', `azienda` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`id`), FOREIGN KEY (azienda) REFERENCES `#__turnipersonaleaziende`(id) ON DELETE CASCADE ) ENGINE=INNODB CHARACTER SET `utf8` COLLATE `utf8_general_ci`; CREATE TABLE IF NOT EXISTS `#__turnipersonaleturnom` ( `id` int(11) unsigned NOT NULL auto_increment, `turnom_1settimana_times` time NULL default NULL, `turnom_1settimana_endtimes` time NULL default NULL, `turnom_2settimana_times` time NULL default NULL, `turnom_2settimana_endtimes` time NULL default NULL, `turnom_3settimana_times` time NULL default NULL, `turnom_3settimana_endtimes` time NULL default NULL, `turnom_4settimana_times` time NULL default NULL, `turnom_4settimana_endtimes` time NULL default NULL, `turnom_5settimana_times` time NULL default NULL, `turnom_5settimana_endtimes` time NULL default NULL, `mese` char (2) NOT NULL default '', `anno` year(4) NOT NULL default '0000', `checked_out` int(11) NOT NULL default '0', `checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00', `dipendente` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`id`), UNIQUE (`mese` ,`anno` ,`dipendente`) FOREIGN KEY (dipendente) REFERENCES `#__turnipersonaledipendenti`(id) ON DELETE CASCADE ) ENGINE=INNODB CHARACTER SET `utf8` COLLATE `utf8_general_ci`;
Devo estrarre tutti i dipendenti indipendentemente dal fatto che per loro sia stata fatto un turno o meno.
Quando faccio l'estrazione indico sempre un mese e un anno
Se faccio una query simile:
codice:SELECT tpt.*,tpd.dipendente_nome_cognome,tpd.dipendente_orario_contrattuale_settimanale,tpd.id as iddipendente FROM #__turnipersonaledipendenti as tpd LEFT JOIN #__turnipersonaleturnom as tpt ON tpt.dipendente = tpd.id WHERE tpd.azienda = 1 AND tpt.mese IS NULL || tpt.mese = "1" AND tpt.anno IS NULL || tpt.anno = "2010"
Avrò tutti i dipendenti solo nel caso nessun dipendente sia stato inserito nella tabella turni (quindi siano tutti null) oppure nel caso rientrino nel mese e nell'anno o siano null.
Quindi se un dipendente è già presente con un turno per il mese non richiesto nn lo estrae
non so come impostare il where![]()

Rispondi quotando

