Quand l'on fait des jointures on veut parfois récupérer les enregistrements dont un champ n'est pas renseigné ou au contraire que ceux qui le sont.
Pour cela en SQL on utilise le "IS NULL" ou "IS NOT NULL".
Pour faire la même chose avec la database API de Drupal 7 il faut utiliser les methodes isNull() et isNotNull().
Exemple avec isNull() :
$query = db_select('scald_atoms', 'a'); $query->fields('a', array('sid','title')); $query->leftjoin('table_name','table_alias','table_alias.entity_id = a.sid'); $query->isNull('table_alias.mon_field_value'); $query->execute(); $query->fetchAllAssoc('nid');
Exemple avec isNotNull() :
$query = db_select('scald_atoms', 'a'); $query->fields('a', array('sid','title')); $query->leftjoin('table_name','table_alias','table_alias.entity_id = a.sid'); $query->isNotNull('table_alias.mon_field_value'); $query->execute(); $query->fetchAllAssoc('nid');
Ajouter un commentaire