-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