我在这里使用codeigniter框架我现在通过数据表获取值我想从两个表中获取数据,如下所示。
Table 1
id Name Age
1 Sam 26
2 Geo 36
5 Sant 12
Table 2
id Name Age
3 Jhon 25
2 Geo 45
7 Negir 17
Result
id Name Age
1 Sam 26
2 Geo 45
3 Jhon 25
5 Sant 12
7 Negir 17
你可以看到我合并了两个表,而id 2有45个覆盖了第一个表。请帮助我。
答案 0 :(得分:1)
您可以使用此sql查询来获取记录
SELECT id,name,age
FROM table1
GROUP BY id,name
UNION
SELECT id,name,age
FROM table2
GROUP BY id,name order by id asc
我们可以在codeigniter方式中使用此查询: -
$this->db->query("SELECT id,name,age FROM table1 GROUP BY id,name UNION SELECT id,name,age FROM table2 GROUP BY id,name order by id asc");
答案 1 :(得分:0)
在这种情况下,我要做的是获取单个选择查询的compiled_select()
,然后在$this->db->query()
的帮助下将它们合并为一个查询。
您可以执行以下操作:
$this->db->select('id,name,age');
$this->db->from('table1');
$query_1 = $this->db->get_compiled_select();
$this->db->select('id,name,age');
$this->db->from('table2');
$query_2 = $this->db->get_compiled_select();
$final_query = $this->db->query($query_1 . ' UNION ' . $query_2);
$result = $final_query->result_array();
然后您可以照常从$result
变量中获取值。