在这里,我想连接两个表,并希望生成如下所示的输出
Akbar Travels building 2018-10
Thrikandiyur Quarters 2018-10
Akbar Travels building 2018-11
Thrikandiyur Quarters 2018-11这里有两个表名为table A,table B,table A结构如下所示
category_id category_name
5 Akbar Travels building
6 Thrikandiyur Quarters table B结构如下所示
id paying_month parent_category
1 2018-10 5
2 2018-10 5
3 2018-11 5
4 2018-11 5
5 2018-10 6 为了获得输出,我编写了如下代码
public function get_date_wise_pdf_report($from, $to)
{
$query=$this->db->query("SELECT * from tableA A left join tableB B on A.category_id = B.parent_category and B.paying_month BETWEEN '{$from}' AND '{$to}' ");
return $query->result();
}但当我用这个的时候我就会变成这样
Akbar Travels building 2018-10
Akbar Travels building 2018-10
Akbar Travels building 2018-11
Akbar Travels building 2018-11
Thrikandiyur Quarters 2018-10我不能在这里按组发言,如果我只给出了两行,请帮我解决。
发布于 2018-10-02 10:53:25
使用不同
SELECT distinct A.category_name,B.paying_month
from tableA A left join tableB B on A.category_id = B.parent_category and
B.paying_month BETWEEN '{$from}' AND '{$to}'
order by B.paying_month发布于 2018-10-02 11:15:55
根据你的表格,"Thrikandiyur宿舍“只与"2018-10”有关系。因此,对于您的输出来说,这一行是:"Thrikandiyur row 2018-11“,您应该在表b中有这样的引用:
id || paying_month || parent_category
6 || 2018-11 || 6 您所使用的条件只是日期间隔。为了获得不重复的输出,您应该在语句中添加一个“不同的”。如下所示:
$query=$this->db->query("SELECT DISTINCT * from tableA A left join tableB B on
A.category_id = B.parent_category and B.paying_month BETWEEN '{$from}' AND
'{$to}' ");另一种解决方案是使用"GROUP“:
$query=$this->db->query("SELECT * from tableA A left join tableB B on
A.category_id = B.parent_category and B.paying_month BETWEEN '{$from}' AND
'{$to}' GROUP BY B.parent_category");https://stackoverflow.com/questions/52606881
复制相似问题