Обновленный код
$office = $this->session->userdata('department');
$query = "SELECT 'doc'.'id', 'doc'.'barcode', 'doc'.'sub', 'doc'.'source_type', 'doc'.'sender', 'doc'.'address', 'doc'.'description', 'doc'.'receipient', 'doc'.'status', DATE_FORMAT('doc'.'datetime_added', '%m/%d/%Y-%h:%i %p') as datetime_added,
(SELECT GROUP_CONCAT('tag') FROM 'tags' WHERE 'tags'.'documentId' = 'doc'.'id' GROUP BY 'tags'.'documentId') as 'tags'
FROM 'documents' AS 'doc'
JOIN 'transactions' AS 'trans' ON 'doc'.'id' = 'trans'.'document_id'
JOIN 'trackers' AS 'track' ON 'doc'.'id' = 'track'.'document_id'
WHERE 'doc'.'status' = 'Processing'
AND 'track'.'action' = '1')
AND 'track'.'location' = '$office'
ORDER BY 'doc'.'id' DESC";
$go = $this->db->query($query)->result_array();
var_dump($go); exit();
То, что я пытаюсь выполнить, заключается в отображении всех документов, находящихся в нашем офисе, которые обрабатываются и имеют действие 1. Документы могут иметь теги, такие как напоминание, запрос, финансы и т.д. Результат неверен и не отображает все записи, которые находятся в нашем офисе. Я думаю, что есть проблема в предложении WHERE? Что может быть виновником в моем коде?
$this->db->select("doc.id, doc.barcode, doc.sub, doc.source_type, doc.sender, doc.address, doc.description, doc.receipient, doc.status, DATE_FORMAT(doc.datetime_added, %m/%d/%Y-%h:%i %p) as datetime_added,
(SELECT GROUP_CONCAT(tag) FROM tags WHERE tags.documentId = doc.id GROUP BY tags.documentId) as tags")
->from("documents AS doc")
->join("transactions AS trans",'doc.id=trans.document_id')
->join("trackers AS track",'doc.id=track.document_id')
->where("doc.status","Processing")
->andWhere("track.action","1")
->andWhere("doc.id",$office)
->order_by("doc.id", "DESC");
Обновите свой запрос, удалив одинарные кавычки, окружающие 1:
$query = "SELECT 'doc'.'id', 'doc'.'barcode', 'doc'.'sub', 'doc'.'source_type', 'doc'.'sender', 'doc'.'address', 'doc'.'description', 'doc'.'receipient', 'doc'.'status', DATE_FORMAT('doc'.'datetime_added', '%m/%d/%Y-%h:%i %p') as datetime_added,
(SELECT GROUP_CONCAT('tag') FROM 'tags' WHERE 'tags'.'documentId' = 'doc'.'id' GROUP BY 'tags'.'documentId') as 'tags'
FROM 'documents' AS 'doc'
JOIN 'transactions' AS 'trans' ON 'doc'.'id' = 'trans'.'document_id'
JOIN 'trackers' AS 'track' ON 'doc'.'id' = 'track'.'document_id'
WHERE 'doc'.'status' = 'Processing'
**AND 'track'.'action' = 1)**
AND 'track'.'location' = '$office'
ORDER BY 'doc'.'id' DESC";
GROUP_CONCAT
для таблицыtags
поid
чтобы сгенерировать список всех тегов для каждого документа. Я вижу слишком много проблем в вашем коде, чтобы попытаться получить формальный ответ.