当前位置: 首页 > 知识库问答 >
问题:

mysql - 问一个多表查询的简单问题?

安经纶
2024-09-19

有两张表,分别储存产品信息与检测信息
检测信息表procheck中pro_id关联到产品信息表pro中的id,每个产品对应有多个检测信息记录
我现在需要把某个公司(产品表中company_id)生产的所有产品的最新一次检测报告调出来?

SELECT `pro`.`id`,`pro`.`pm`,`pro`.`company_id`,procheck.id AS procheck__id,procheck.pro_id AS procheck__pro_id,procheck.checkdate AS procheck__checkdate FROM `da_pro` `pro` LEFT JOIN `da_procheck` `procheck` ON `pro`.`id`=`procheck`.`pro_id` WHERE `pro`.`company_id` = 487

但是得出的结果却是:
image.png

全部给我找了出来,而我真正需要的是箭头上的三条即可。
求SQL语句.....

共有1个答案

柯梓
2024-09-19

先查询出procheck表里每个产品对应最新的checkdate,再拿你的结果连接一下作筛选

(你的SQL语句) t1
JOIN (
    SELECT pro_id, MAX(checkdate) AS max_checkdate
    FROM procheck
    GROUP BY pro_id
) t2
ON t1.procheck__pro_id = t2.pro_id AND t1.procheck__checkdate = t2.max_checkdate;
 类似资料:
  • 有ci_trail表,字段为:id, uid(用户id), address(地址), create_time 记录人的定位轨迹,此表大概有100w条数据。想查询每个人最新的一条地址信息。使用如下sql: 查询计划如下图: 可见进行了全表扫描,查询效率很低,请问这种情况应该如何优化sql? 已解决 方案1: 方案2: 先将子查询中的id查询出来,然后将id的结果集逗号隔开填充到in中。因为in的内容

  • 数据库表 Project id name user_id 1 跳远 1,2,3,4,6,8,12.... 2 跳绳 21,43,13,14,26,38,92.... 字段user_id保存着用户表user中的id 现在做了一个管理系统,用户登录进来的时候系统会保存该用户的id 然后去查询该用户参加比赛的项目列表,如果参加了跳绳项目,就显示出跳绳选项。 第一个想到的就是先循环出project这个表,

  • 我有这个问题。我希望它从内容表中选择4个条目,并按如下方式对条目进行排序: > 选择最近的条目。它表示按日期排序(mysql datetime)DESC,id DESC。 从这4个选定项中,按likes(mysql INT)DESC排序 运行查询时,它返回错误的结果。它选择与此条件匹配的条目,其中主题='id'和活动='1'。它按likes DESC对条目进行排序,但忽略了这个条件,即按日期DES

  • 在这里,同一个时钟周期内,a被赋值的语句和c被赋值的语句的执行的先后顺序未必确定对不对? 我希望无论如何都是c<=a先执行,这样的话应该怎么写代码呢?我知道写在一个begin块里用=就行但我想知道不同always块内的情况,,, 刚开始搞这玩意不太明白,恳请赐教.

  • 问题内容: 我正在尝试在单个查询中计算两列,但结果却为medcount和uploadcount吐出了相同的值。有什么建议? 问题答案: 使用:

  • 问题内容: 我有以下查询: 所以我正在使用并抓住。所以现在,我要获取该image_id并将其从图像表中转换成。 如何将其添加到查询中? 问题答案: 您可以简单地添加另一个联接,如下所示: 但是请注意,由于它是一个,如果您的消息中没有图像,则将跳过整个行。如果可能的话,您可能需要执行一次操作,该操作将仅在存在一个仪表板消息的情况下返回所有仪表板消息和一个image_filename(否则,您将获得n

  • 问题内容: 我想轻松删除多个表,而无需在删除查询中实际列出表名,并且要删除的表的前缀为“ wp_” 问题答案: 只需分享其中一种解决方案: mysql> SELECT CONCAT(“ DROP TABLE”, GROUP_CONCAT(TABLE_NAME))as stmt 从information_schema.TABLES WHERE TABLE_SCHEMA =“ your_db_name

  • 问题内容: 所有查询都是独立工作的,但实际上很难将所有内容组合到一个结果中,因此我可以将其与mysql_fetch_array一起使用。 我试图创建视图以及临时表,但是每次它说表不存在或返回一个空的获取数组循环时……都有逻辑但语法混乱,我认为这是我第一次处理多个查询,我需要将所有查询合并在一起。期待获得支持。非常感谢。 问题答案: 多亏了php.net,我提出了一个解决方案:您必须使用它来运行多个