使用php和mysql从表中获取最新的值
我有下面的sql表结构,我试图使用codeigniter从两个表中获取值使用php和mysql从表中获取最新的值,php,mysql,sql,codeigniter,codeigniter-2,Php,Mysql,Sql,Codeigniter,Codeigniter 2,我有下面的sql表结构,我试图使用codeigniter从两个表中获取值 table: salesman id sales_name ref_id 1 kevin 174 2 mike 574 3 nick 777 table: sales_report id salesman_id product purchased_date dispatched 1 2
table: salesman
id sales_name ref_id
1 kevin 174
2 mike 574
3 nick 777
table: sales_report
id salesman_id product purchased_date dispatched
1 2 BF0214 04-November-2011 Yes
2 2 CF0474 09-November-2011 No
3 2 BF0111 10-November-2011 No
4 3 BF0714 15-November-2011 Yes
5 3 BF0435 15-November-2011 Yes
6 2 BF0335 18-November-2011 Yes
7 1 BF0714 22-November-2011 Yes
8 1 BF0335 25-November-2011 Yes
我将销售人员id传递给模型,以获取并显示我视图中的值
我的html表格如下所示
Ref ID | Salesman Name | Last product Sold | Sold Date | Dispatched Status
我遇到的问题是,如何查询以从sales_表中获取sales_name和ref_id,并从sales_report表中获取最新的产品名称、发货和购买日期
例如:
使用
分组
订购人
要完成此操作您需要使用sales\u报告中的值,sales\u名称和参考id中的值,purchased\u date DESC首先获取最新的,而不是最旧的,sales.id仅为每个sales返回一行
SELECT * FROM sales_report LEFT JOIN salesman ON sales_report.salesman_id = salesman.id ORDER BY purchased_date DESC GROUP BY salesman.id
您应该通过两个标准查找最后一个产品:其销售日期和id;因为有些产品可能一天就能卖出去。那么,试试这个-
SELECT s.ref_id, s.sales_name, sr.product, sr.purchased_date, sr.dispatched FROM salesman s
JOIN (
SELECT salesman_id, product, purchased_date, dispatched FROM (
SELECT salesman_id, product, purchased_date, dispatched, IF(@salesman_id = salesman_id, @i := @i + 1, @i := 1) n, @salesman_id := salesman_id
FROM sales_report, (SELECT @i:= 0, @salesman_id = NULL) vars
ORDER BY salesman_id ASC, purchased_date DESC, id DESC) t
WHERE t.n = 1
) sr
ON s.id = sr.salesman_id;
SELECT s.ref_id, s.sales_name, sr.product, sr.purchased_date, sr.dispatched FROM salesman s
JOIN (
SELECT salesman_id, product, purchased_date, dispatched FROM (
SELECT salesman_id, product, purchased_date, dispatched, IF(@salesman_id = salesman_id, @i := @i + 1, @i := 1) n, @salesman_id := salesman_id
FROM sales_report, (SELECT @i:= 0, @salesman_id = NULL) vars
ORDER BY salesman_id ASC, purchased_date DESC, id DESC) t
WHERE t.n = 1
) sr
ON s.id = sr.salesman_id;