使用php从mysql中获取排序形式的数据

时间:2013-07-17 07:41:32

标签: php mysql

我正在开发一个php页面,并有一个名为

的表
  

computer_complaint

我想要的是通过用户提出的最新投诉从该表中获取数据。 当用户提交任何投诉时,它会存储在此表格中,这会给他一个独特的

  

COMPUTER_ID

  

problem_date

是用户投诉时输入日期的列。并且同一个用户可以多次投诉

现在我想要一个查询,通过该查询我可以显示该用户投诉的最新详细信息,因此我需要对该computer_id上的最后一个problem_date进行排序。 我当前的查询是

select *,date_format(cc.problem_date,'%d/%m/%Y')as problem_date,ifnull(cc.attended_on,'Pending')as com_status from computer_complaint cc,computer_master cm,computer_st_complaint_mode ccm,computer_company_master cmy WHERE cc.`status`='Active' and cm.`status`='Active' and ccm.`status`='Active' and cmy.`status`='Active' and cc.computer_id=cm.computer_id and cc.method=ccm.comp_mod_id  and cm.company_id=cmy.company_id

但它显示了该特定ID的所有记录,而我只想要最新的记录 因此,我希望所有computer_id仅显示最新提交的投诉,不显示每个ID的所有投诉,因为这使我的显示屏连线。

提前致谢。

1 个答案:

答案 0 :(得分:1)

要获取每个cc.computer_id的最后一个,您可以使用:

select *,date_format(cc.problem_date,'%d/%m/%Y')as problem_date,ifnull(cc.attended_on,'Pending')as com_status from computer_complaint cc,computer_master cm,computer_st_complaint_mode ccm,computer_company_master cmy WHERE cc.`status`='Active' and cm.`status`='Active' and ccm.`status`='Active' and cmy.`status`='Active' and cc.computer_id=cm.computer_id and cc.method=ccm.comp_mod_id  and cm.company_id=cmy.company_id ORDER BY cc.problem_date DESC GROUP BY cc.computer_id

根据cc.problem_date,这将为您提供最新条目!