我尝试获取来自mysql查询的数据以便以后使用它。如果我必须在带有join子句的表中输出数据,我不在乎。我只需要从中得到一个特殊的部分。但我希望获得所有相关或相互关联的内容。
这是使用带有php
的codeigniter MVC框架我希望能够通过一个查询访问每个表中的数据
function get_reg(){
$this->db->select('*');
$this->db->from('
tableA.*,
tableB.*,
tableC.*,
tableD.*
');
$this->db->where('tableA.name = tableB.name');
$this->db->where('tableC.name = tableD.name');
$this->db->where('tableA.name = tableD.name');
$this->db->where('tableC.name = tableB.name');
$query = $this->db->get();
return $query->result_array();
}
这样的事情就这样被访问:
$ this-> load_model-> get_reg()//得到我想要的东西
我不知道这是否可行。
答案 0 :(得分:0)
要在单个查询中执行此操作,您需要使用JOIN
语法。
你的答案看起来像
$this->db->from('tableA');
$this->db->join('tableB', 'tableA.name = tableB.name', 'LEFT'); // the type of join depends on the behavior you want
$this->db->join('tableC', 'tableA.name = tableC.name', 'LEFT');
$this->db->join('tableD', 'tableA.name = tableD.name', 'LEFT');
$query = $this->db->get();
上面根据名称将所有表连接在一起,在所有表中看起来都是相同的。当连接表的某些行没有名称值时,连接类型很重要。
您可以在docs
中阅读更多内容