从mysql中的租赁表中选择以显示用户当前租赁的物品
如果您了解 sakila 示例数据库,那么选择用户当前租用的项目的语句是什么。 如果没有,这里有一个代码解释:
CREATE TABLE IF NOT EXISTS `rentals` (
`item_id` int(10) unsigned NOT NULL,
`user_id` int(10) unsigned NOT NULL,
`last_change_date` date NOT NULL,
PRIMARY KEY (`item_id`,`user_id`,`last_change_date`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
请注意,没有归还日期,这是因为最后一个承租人的租赁时间是无限期的,直到有人请求该物品并且它也会无限期地转移给新的承租人。一个用户可以租用多件物品,并且每件物品只有一件,因此 item_id 不能同时分配给两个用户。
我想显示每个 user_id 当前租用的项目。
If you know about sakila sample database, then what is the statement to select items currently rented by a user.
If not here is a code explanation:
CREATE TABLE IF NOT EXISTS `rentals` (
`item_id` int(10) unsigned NOT NULL,
`user_id` int(10) unsigned NOT NULL,
`last_change_date` date NOT NULL,
PRIMARY KEY (`item_id`,`user_id`,`last_change_date`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Notice there is no return date, this is because the last renter has indefinite rental time, until somebody requests this item and it's transferred to the new renter for indefinite time as well. A user can rent more than one item and there is only one piece of each item so an item_id cannot go to two users at the same time.
I would like to display currently rented items per user_id.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是一个经典的sql问题。答案是这里解释。
用作
播放数据,要理解该方法,请查看
前 3 列引用
r1
的列,最后 3 列引用r2
的输出。正如您所看到的,只要没有大于
r1.last_change_date
的r2.last_change_date
,该值为 NULL。这些是r1.last_change_date
最大的行。因此,要查找所需的行,请使用条件
This is a classic sql question. The answer is explained here.
Using
as play-data, to understand the method, look at the output of
The first 3 columns refer to
r1
's columns, the last 3 refer tor2
's.As you can see, whenever there is no
r2.last_change_date
which is greater thanr1.last_change_date
, the value is NULL. Those are the rows wherer1.last_change_date
is greatest. So to find the rows you want, you usethe condition