mysql查询从包含表字段的两个表中获取最后n个记录

时间:2014-11-18 07:31:53

标签: mysql

image1=emp_detail (table),
image2=emp_atnd (table),
image3=result that i get right now,
image4 =expected result's image.

emp_detail table

emp_atnd table

result

expected result

这里我首先有两个表是emp_detail表,第二个是emp_atnd表。最后一张图片是我想要的结果,但是现在我得到的结果就像图片3一样,带有给定的查询。

SELECT `emp_id`,`emp_date`,`first_nm` FROM `emp_atnd`,`emp_detail` WHERE `emp_id` IN (SELECT `id` FROM `emp_detail`)AND YEAR(`emp_date`)=2014 LIMIT 0,4

为什么我没有得到我想要的结果?

4 个答案:

答案 0 :(得分:0)

  

SELECT emp_id,emp_date,first_nm FROM emp_atnd JOIN emp_details on   emp_id = id WHERE YEAR(emp_date)= 2014 LIMIT 0,4

答案 1 :(得分:0)

SELECT `emp_id`,`emp_date`,`first_nm` FROM `emp_atnd` a,`emp_detail` b 
WHERE b.`emp_id`=a.id AND YEAR(`emp_date`)=2014 LIMIT 0,4

答案 2 :(得分:0)

我认为这会起作用

SELECT emp_atnd .emp_id,emp_atnd.emp_date,emp_detail.first_nm 
  FROM emp_atnd,emp_detail 
  WHERE emp_atnd .emp_id=emp_detail.id AND YEAR(emp_date)=2014 
  ORDER BY emp_atnd .emp_id
  LIMIT 0,4

答案 3 :(得分:0)

按desc命令,例如我将emp_id作为主行,您可以根据您的要求进行设置。它会给你自下而上的记录,然后得到0到4条记录。 愿它能帮到你。

SELECT `emp_id`,`emp_date`,`first_nm` FROM `emp_atnd` a,`emp_detail` b 
WHERE b.`emp_id`=a.id AND YEAR(`emp_date`)=2014 order by emp_id desc LIMIT 0,4