跨两个表的复杂mysql查询
表1:typeID、groupID、typeName、description列的invTypes 表2:typeID、volume、avg、max、min、stddev、percentile、updated_on列的项目值跨两个表的复杂mysql查询,mysql,sql,join,Mysql,Sql,Join,表1:typeID、groupID、typeName、description列的invTypes 表2:typeID、volume、avg、max、min、stddev、percentile、updated_on列的项目值 我需要返回上面所有列,其中最新更新的_on datetime字段是决定因素。我想返回每天的最新日期时间,并返回表1和表2中的所有信息作为结果。这是如何获得与item\u value表中每个日期的最新更新对应的行的方法: SELECT * FROM table1 LEFT J
我需要返回上面所有列,其中最新更新的_on datetime字段是决定因素。我想返回每天的最新日期时间,并返回表1和表2中的所有信息作为结果。这是如何获得与item\u value表中每个日期的最新更新对应的行的方法:
SELECT * FROM table1
LEFT JOIN table1.uniqueid = table2.uniqueid ON table2
ORDER BY update_on DESC
GROUP BY (DATE(updated_on))
目前尚不清楚这两个表之间有什么关系。我们如何知道要从invTypes中选择哪些行?表1由项目列表组成。表2列出了这些项目的值。这些值每30分钟更新一次。虽然表1只有一个typeID,但表2有很多。我不确定我是否回答了你的问题,但希望你能更好地理解。我必须道歉,我对数据库的了解有限,我通常害怕向这个方向发展。您忽略了在item_value表的列列表中包含typeID-感谢您的更新。我很抱歉,它应该在那里。花了太多时间想弄明白。好的是,我的查询与您在下面发布的内容非常接近,但看起来像是通过了一个混合器。这不会返回每个日期内最新更新的行上的数据。它也是无效的SELECT查询;你的条款有问题。的查询至少涉及到一个子查询的一个联接。这个答案肯定是不正确的,尽管我们还没有所有必要的信息来产生正确的答案。我不太喜欢加入,只是想帮你,非常感谢你。我希望我有你一半的数据库知识。在第10行从臀部拍摄时有一个小错误。它应该是项目价值,而不是库存价值。我只是提到这一点,以便其他读者不会感到困惑。再次非常感谢。此外,我已经更新了问题的准确性。再次感谢你。我有什么办法可以说服你解释这是如何工作的吗?此外,我不明白这是如何选择每天的最后一个条目的。事实上,我已经运行了几次,每次都得到不同的结果。结果似乎是随机的,因为我只见过几次返回相同项目结果的情况。
SELECT
invTypes.*,
item_value.*
FROM
item_value
INNER JOIN
(
SELECT
MAX(updated_on) AS `updated_on`
FROM
item_value
GROUP BY
DATE(updated_on)
) latest
ON
latest.updated_on = item_value.updated_on
INNER JOIN
invTypes
ON
invTypes.typeID = item_value.typeID
ORDER BY
item_value.updated_on