Codeigniter通过UNION加入两个表

时间:2016-04-28 05:44:10

标签: codeigniter datatable


我在这里使用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个覆盖了第一个表。请帮助我。

2 个答案:

答案 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变量中获取值。