考虑以下两个表:这个mySQL查询有什么问题?
tag_names (tag_id, tag_name)
tag_links (tag_id, image_id)
的图像可以有多个标签,我想选择一个特定的图像ID的所有标签。 我想下面的查询,但它似乎没有正确选择(只选择一行),它有什么问题?
SELECT tag_name
FROM tag_names
LEFT JOIN tag_links.tag_id = tag_names.tag_id
WHERE tag_links.image_id = $image_id
编辑:我用笨的活动记录查询,但我基本的SQL格式写的,这样,如果有人不使用CodeIgniter fimiliar可以提供帮助。然而,这个查询在简单的mysql格式下工作正常(不使用CodeIgniter),但奇怪的是CodeIgniter不起作用,即使语法没有任何问题,它只是选择一行。
下面是CodeIgniter的语法:
$this->db->select('tag_name');
$this->db->from('tag_names');
$this->db->join('tag_links', 'tag_links.tag_id = tag_names.tag_id', 'left');
$this -> db -> where('tag_links.image_id', (int)$image_id);
$query = $this->db->get();
我认为tag_links必须与tag_names保持连接,而不是tag_names与tag_links。 –
编辑我的答案。 – avall