两个表的结果按日期排序

时间:2014-11-21 08:48:35

标签: php mysql codeigniter activerecord

你可以帮助我有两个表imagesnote。我想从这些表中获取所有项目并按日期排序。我可能在codeigniter中使用活动记录。表是独立的。

感谢您的回复。

4 个答案:

答案 0 :(得分:1)

这应该有效:

$this->db->orderby("date", "ASC"); //or desc     
$query = $this->db->get('images'); //or $query = $this->db->get('note');
$result=$query->result_array();
print_r($result);

或者如果你想使用union all

$this->db->query('SELECT * FROM (SELECT id, date FROM images UNION ALL SELECT id, date FROM note) result ORDER BY result.date');

请注意,UNION中的每个SELECT语句必须具有相同的列数。列还必须具有类似的数据类型。此外,每个SELECT语句中的列必须与http://www.w3schools.com/sql/sql_union.asp的顺序相同。

答案 1 :(得分:1)

我想你想要一个交叉加入。 这是你的codeigniter代码

$this->db->from("images ,note");
$this->db->select("images.*,note.*);
//make sure both dont have same column name other wise use this
//$this->db->select("images.column1,images.column2,note.column1);

$this->db->orderby("images.date", "DESC");
//you can add more orderby
//you can add where condition too

$result=$this->db->get()->result_array();

现在您将获得跨产品。 希望它会对你有所帮助。

答案 2 :(得分:0)

你在哪个表中有日期栏?我假设你在图像表中有它。

$this->db->select('images.coulmn1, images.culmn2, images.date_col, note.col1, note.col2'); $this->db->from('images'); $this->db->join('note', 'note.key1 = images.key1); //key1 is key field to relate both table. $this->db->order_by("images.date_col", "desc"); $result = $this->db->get()->result_array();

希望它会有所帮助。

答案 3 :(得分:0)

试试这个:

 $this->db->select('*');
 $this->db->from('images');
 $this->db->join('note');
 $this->db->orderby("date column name", "ASC");
 $query = $this->db->get();
 $result=$query->result_array();
 print_r($result);