gpt4 book ai didi

select - SQL 从项目到所有者表中选择所有者的所有项目

转载 作者:行者123 更新时间:2023-11-29 09:18:56 25 4
gpt4 key购买 nike

我有一张bike_to_owner table 。我想选择特定用户拥有的当前项目。

表结构为

CREATE TABLE IF NOT EXISTS `bike_to_owner` (
`bike_id` int(10) unsigned NOT NULL,
`user_id` int(10) unsigned NOT NULL,
`last_change_date` date NOT NULL,
PRIMARY KEY (`bike_id`,`user_id`,`last_change_date`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

在用户的个人资料页面中,我想显示他/她当前的所有属性(property)。

我写了这个声明:

SELECT `bike_id`,`user_id`,max(last_change_date) FROM `bike_to_owner` 
WHERE `user_id` = 3 group by `last_change_date`

但我不太确定它在所有情况下都能正常工作。您能否验证一下这是正确的,如果不正确,请建议我更好的东西。使用 php/mysql。

提前致谢!

最佳答案

根据您的评论,我将在这里给出一个新的答案。

由于您可能让用户拥有一辆自行车,然后放弃它,然后再次取回它,并且您希望能够跟踪该历史记录,因此我建议对您的架构稍作更改:

CREATE TABLE IF NOT EXISTS `bike_to_owner` (
`bike_id` int(10) unsigned NOT NULL,
`user_id` int(10) unsigned NOT NULL,
`acquired_date` date NOT NULL,
`sold_date` date NULL,
PRIMARY KEY (`bike_id`,`user_id`,`acquired_date`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

每当自行车易手时,您都会将前任所有者的 sold_date 更新为当前日期,并为新所有者创建 sold_date 为 NULL 的新记录以及当前日期的 acquired_date

那么确定当前所有权的查询将如下所示:

SELECT `bike_id`,`user_id` FROM `bike_to_owner` 
WHERE `user_id` = 3 AND sold_date IS NULL

关于select - SQL 从项目到所有者表中选择所有者的所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2967542/

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