I’m desperate with an issue in my DB query which looks as follows:
$query = $db->select('node_field_data', 'n'); $query->distinct(); $query->join('node__field_internal_institute_paper_i', 'iipi', 'n.nid = iipi.entity_id'); $query->join('paper_association_project_list', 'paal', 'iipi.field_internal_institute_paper_i_value = paal.internal_institute_paper_id'); $query->join('paper_list', 'pl', 'paal.internal_institute_paper_id = pl.internal_institute_paper_id'); $query->condition('paal.position', '0', '>'); $query->condition('paal.internal_institute_project_id', 'WHOLE_INSTITUTE', '='); $query->fields('n', array('nid')); $query->fields('n', array('title')); $query->fields('paal', array('position')); $query->fields('pl', array('paper_link')); $query->fields('pl', array('pub_year')); $query->fields('pl', array('journal_title_long')); $query->fields('pl', array('issn')); $query->orderBy('paal.position', 'ASC');
You can see two conditionals in the middle of this query. If I do each condition
alone it works fine and it applies that condition. But if I have both of them none of them get applied. I’m not sure what I’m doing wrong here?
If I run this query in RAW SQL like this:
SELECT COUNT(*) FROM paper_association_project_list WHERE (internal_institute_project_id = 'WHOLE_INSTITUTE') AND (position > '0');
it definitely finds it.
Any help?