【问题标题】:Get latest record from second table从第二个表中获取最新记录
【发布时间】:2018-07-11 19:37:09
【问题描述】:

我正在获取所有具有第一份薪水的员工名单,我希望所有具有最新薪水的员工都记入贷方。

员工表

emp_id | emp_name
-------|--------- 
101    | Andrew
102    | John
103    | Alex

薪资表

sal_id | emp_id | month                 | salary
-------|--------|-----------------------|-------
201    | 101    | 1st jan 2018          | 10000
202    | 101    | 1st feb 2018          | 20000
203    | 101    | 1st march2018         | 30000
204    | 102    | 1st jan 2018          | 10000
205    | 102    | 1st feb 2018          | 20000
206    | 102    | 1st march2018         | 30000
207    | 103    | 1st jan 2018          | 10000
208    | 103    | 1st feb 2018          | 20000
209    | 103    | 1st march2018         | 30000

我只想获取所有员工名单,其中包含最近一个月的工资。 (所有三月工资的员工)

提前致谢。

【问题讨论】:

  • 你试过什么?提供一些您已经尝试过的查询...
  • 您需要向我们展示您的尝试以及您遇到的问题。您目前甚至没有提出任何问题,而是给了我们一个任务,这并不是这个网站的真正运作方式。
  • SELECT * FROM employee LEFT JOIN employee ON employee.emp_id = salary.emp_id GROUP BY employee.emp_id ORDER BY emp_idDESC
  • 编辑您的问题以包含所有相关信息(例如您的尝试),而不是将其发布在 cmets 中。还要包括你得到的输出和预期的输出应该是什么。

标签: php mysql codeigniter


【解决方案1】:
$date = date('F Y');

$saleries = $this->db->select('e.*, s.salary')
->join('Salary-Table s','s.emp_id = e.emp_id')
->like($date, 'match')
//order by the month and the group by emp id to give you the latest
->order_by('s.month', 'asc')
->group_by('e.emp_id')
//return results as an array of arrays
->get('Employee-table e')->result_array();

https://www.codeigniter.com/userguide3/database/query_builder.html

【讨论】:

  • 日期的写法类似于 OP 的示例:1st feb 2018,按s.month 排序将无法按预期工作。
  • 对于最新的薪水或月份,我必须使用 ->order_by('s.month', 'DESC') 但即使在使用后,如果我得到的是第一份薪水而不是最新的薪水
【解决方案2】:

这段代码应该可以工作:

<?php

    $date = date('F Y');

    $sql = "SELECT * FROM Employee-table et 
            INNER JOIN Salary-Table st ON et.emp_id = st.emp_id 
            WHERE st.month LIKE '%$date%'";

【讨论】:

  • 我正在获取所有具有第一份薪水的员工名单,离开加入后,我希望所有最新薪水的员工都记入账目。
  • 你在开玩笑吗?
  • 上个月的最后工资?
  • 是的,我只想要最新薪水列的员工名单,但我得到的是他们的第一份薪水
猜你喜欢
  • 2020-11-02
  • 2021-11-26
  • 1970-01-01
  • 1970-01-01
  • 2019-12-05
  • 1970-01-01
  • 1970-01-01
  • 2013-06-14
  • 1970-01-01
相关资源
最近更新 更多