希望有人可以帮我处理MYSQL查询
我有3个数据库表:
points_of_interest
表包含有关某个区域的所有详细信息。
point_of_interest_type
表是类型列表,例如餐厅,咖啡厅,博物馆等。此表还有一个活动列(1或0)
poi_poi_types
是一个映射表 - 因此它包含兴趣点的id和兴趣点类型的id
兴趣点可以有多种兴趣点类型,因此可能在poi_poi_types表中有多个条目
所以我想要的结果是返回points_of_interest列表,但仅限于活跃的兴趣点类型
这是我到目前为止的codeignitor查询,但它不正确 - 它返回poi_poi_types表中实际兴趣点的每个瞬间
$this->db->select('poi.*, poi_types.type as poi_type');
$this->db->from('poi');
$this->db->join('poi_poi_types', 'poi.id = poi_poi_types.poi_id');
$this->db->join('poi_types', 'poi_types.id = poi_poi_types.poi_type_id');
$this->db->where('poi_types.active', 1);
答案 0 :(得分:0)
我相信这应该有效。好吧,设置它使select语句不同。我认为这基本上会SELECT DISTINCT
$this->db->distinct();
$this->db->select('poi.*, poi_types.type as poi_type');
$this->db->from('poi');
$this->db->join('poi_poi_types', 'poi.id = poi_poi_types.poi_id');
$this->db->join('poi_types', 'poi_types.id = poi_poi_types.poi_type_id');
$this->db->where('poi_types.active', 1);