gpt4 book ai didi

mysql - 如何根据从表的不同行中获取的 'year' 和 'month' 值在 MySQL 中创建日期,并在 'where' 子句中使用它

转载 作者:太空宇宙 更新时间:2023-11-03 12:33:56 24 4
gpt4 key购买 nike

在 MySQL 数据库中,我有一个表 item,其中一些列描述了项目,还有另一个表 itemExtendedFields。第二个包含列:id、itemId、name、value。在 itemExtendedFields 中存储了有关项目的附加信息。

一些项目有到期日期,可以从 itemExtendedFields 表的两行中保存的两个值构造。例如,对于 itemId = 34 的项目,我在 itemExtendedFields 中有以下两行:

id | itemId | name | value<br/> --------------------------<br/> 87 | 34 | ExpiryYear | 2014<br/> 88 | 34 | ExpiryMonth | 2<br/>

我需要编写查询,从 items 中选择所有项目以及 itemExtendedFields 中的 expiryYearExpiryMonth 值表格在单独的列中。此外,我需要选择将在给定日期(例如 2014 年 2 月)到期的项目。我不知道如何构建正确的查询。我无法更改表的结构。

最佳答案

这将列出 items 表中的所有列以及 itemExtendedFields 表中的 ExpiryYearExpiryMonth

SELECT  a.*, b.ExpiryYear, b.ExpiryMonth
FROM items a
INNER JOIN
(
SELECT itemID,
MAX(CASE WHEN name = 'ExpiryYear' THEN `value` ELSE NULL END) ExpiryYear,
MAX(CASE WHEN name = 'ExpiryMonth' THEN `value` ELSE NULL END) ExpiryMonth
FROM itemExtendedFields
GROUP BY itemID
) b ON a.itemID = b.itemID
WHERE b.ExpiryYear = 2012 AND
b.ExpiryMonth = 2

关于mysql - 如何根据从表的不同行中获取的 'year' 和 'month' 值在 MySQL 中创建日期,并在 'where' 子句中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14141054/

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