gpt4 book ai didi

mysql - 选择唯一值和关联的时间戳,而不具有使事物唯一的时间戳

转载 作者:行者123 更新时间:2023-11-30 01:21:18 25 4
gpt4 key购买 nike

对于这个措辞不当的问题,我深表歉意。最好通过一个例子和我到目前为止所想到的来说明:

表“myInfo”包含列:

1. id (PK) 
2. key
3. value
4. metaId

表“元”有列:

1. id (PK) 
2. metaName
3. metaValue
4. instanceNum

“myInfo”表中的metaId 与“meta”表中的instanceNum 相关。 “值”列的值有时会随着metaId 在不同的行上发生变化。将metaId 视为指向“meta”表中时间戳值的链接(“timestamp”及其值将分别进入metaName 和metaValue 列)。

我想选择“myInfo”中“值”列的不同值。到目前为止我已经:

SELECT DISTINCT mi.key, mi.value 
FROM myInfo as mi JOIN metadata as meta
WHERE mi.metaId=meta.instanceNum
AND meta.key = 'timestamp'
AND mi.key='maxWeight';

但我还想要与这些值关联的时间戳。所以我希望输出看起来像这样:

key       value   timestamp maxWeight 10 tons 15:00:05 2011-01-01 maxWeight 5 tons  08:00:07 2011-10-12 maxWeight 25 tons 13:05:09 2013-08-01 

我无法将时间戳作为 SELECT 中的列之一,因为这样它也会返回重复的 mi.attrValue 值,因为时间戳使每一行都是唯一的。我尝试将 DISTINCT 关键字仅放在 mi.attrValue 后面,但出现 MySQL 错误。

最佳答案

这完全未经测试,但按 concat 分组可能有效。

SELECT mi.key, mi.value, meta.value
FROM myInfo as mi JOIN metadata as meta ON mi.metaId = meta.id
WHERE mi.key = 'maxWeight'
AND meta.key = 'timestamp'
GROUP BY CONCAT(mi.key, mi.value)

尽管您仍然会遇到显示哪个时间戳的问题。例如,如果给定的键/值对有 3 条记录,那么哪条记录将显示在结果集中?

key       value   timestamp 
maxWeight 10 tons 15:00:05 2011-01-01
maxWeight 10 tons 08:00:07 2011-10-12
maxWeight 10 tons 13:05:09 2013-08-01

按查询分组将仅显示这些结果之一 - 但哪一个呢?您需要考虑订购团体(这是一个全新的球赛)

关于mysql - 选择唯一值和关联的时间戳,而不具有使事物唯一的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18498182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com