-1
我想創建一個Mysql查詢,將兩個表連接在一起,並從這兩個表中獲取一些數據。我想在我的加入聲明中有一個where語句。Mysql WHERE JOIN上,而不是整個查詢
這裏是我的清晰聲明:
$this->db->select('center_contacts.id, FirstName, LastName,
GROUP_CONCAT(center_contacts_notes.id ORDER BY center_contacts_notes.date_added DESC SEPARATOR "~`") as note_ids,
GROUP_CONCAT(center_contacts_notes.note ORDER BY center_contacts_notes.date_added DESC SEPARATOR "~`") as notes,
GROUP_CONCAT(center_contacts_notes.date_added ORDER BY center_contacts_notes.date_added DESC SEPARATOR "~`") as note_dates');
$this->db->from('center_contacts');
$this->db->where('center_contacts.id', $id); // get a specific contact and their notes
$this->db->join('center_contacts_notes', 'center_contacts_notes.contact_id = '.$id.'', 'left');
$this->db->where('center_contacts_notes.active', 1); // only grab active notes
$this->db->group_by('center_contacts.id');
我想我的第二個地方只抓住筆記(和GROUP_CONCAT),其中活躍等於1的問題是,即使有沒有注意到,我仍然想要從center_contacts
抓住id
,FirstName
和LastName
。如果沒有第二個這樣的工作,但是它會返回所有的音符,儘管有些音符不活動如果我保留它甚至不會返回該數據的位置。
這使我認爲需要特定於JOIN的位置(可能在圓括號或其他位置?)。
這是可能的,如果是這樣,我怎麼能做到這一點?謝謝。
通常只需在連接的ON子句中包括這些條件就足夠了,但如果這樣做不起作用,則可以將連接的表引用轉換爲子查詢;儘管我不確定'db->'的東西有多容易。 – Uueerdo