1
我有4個表格:question_tags,標籤,問題和用戶。從很多表格獲取信息
問題結構是:q_id,q_title,q_content,q_date,q_author(從用戶表中的id )。
標籤結構是:TAG_ID,TAG_NAME,tag_description。
Question_tags結構是:id,tag_id,q_id。
我想列出所有問題,並在每個問題標題旁邊顯示和標記。我已經拿出這個到目前爲止:
$this->db->join('users', 'q_author = users.id', 'left');
$this->db->order_by('q_id', 'desc');
$this->db->limit($per_page, $offset);
$query = $this->db->get('questions');
但沒有關於標籤的想法。 (也是我使用CodeIgniter)
P.S.每個問題都可以有多個標籤。
笨-2
我想你可以嘗試在'question.q_id = question_tags.q_id'和一個JOIN(其中'question_tags.tag_id = tags.tag_id'和一個GROUP BY(q_id))之間選擇'GROUP_CONCAT(tag_name) '(我可以在MySQL中編寫查詢,但不知道它在codeigniter中是如何完成的)。這將返回您的信息和每個問題的逗號分隔的標籤名稱列表。 – 2012-02-23 12:31:02
我試過這個:'SELECT *,GROUP_CONCAT(tags.tag_name)FROM問題LEFT JOIN用戶ON q_author = users.id LEFT JOIN question_tags ON questions.q_id = question_tags.q_id LEFT JOIN標記ON questions.q_id = question_tags.q_id GROUP BY questions.q_id',但它返回所有標籤,而不是這個問題。我的錯誤在哪裏? – 2012-02-23 12:48:58
第二個'LEFT JOIN'(到'tags')應該是'ON tags.tag_id = questions_tags.tag_id'。 – 2012-02-23 12:54:33