sql - 形成一个sql查询
问题描述
我真的希望你能帮助我形成一个可以执行以下操作的 sql 查询:
我有 2 张桌子
Pages
(
[Id] [int] IDENTITY(1,1) NOT NULL,
[Key] [nvarchar](450) NULL,
[CreatedAt] [datetimeoffset](7) NOT NULL,
[Title] [nvarchar](max) NULL
)
Contents
(
[Id] [int] IDENTITY(1,1) NOT NULL,
[PageId] [int] NULL,
[Key] [nvarchar](450) NULL,
[Version] [int] NOT NULL,
[Text] [nvarchar](max) NULL
)
Id | Key | CreatedAt | Title
---+---------+-----------+-------
1 | "page1" | 20200101 | ....
Id | PageId | Key | Version | Text
---+--------+--------+---------+------
1 | 1 | "key1" | 1 | .....
2 | 1 | "key1" | 2 | .....
3 | 1 | "key2" | 1 | .....
4 | 1 | "key2" | 2 | .....
5 | 1 | "key3" | 1 | .....
我有兴趣获取页面以及与PageId
页面匹配的每个内容的最新版本。
** 更新 **
Key 是传递来获取结果的键
Select * from Pages where [Key] = 'the key of the page'
期望的结果是这样的
Page.Id | Page.Key | Page.CreatedAt | Page.Title | Content.Id | Content.PageId | Content.Key | Content.Version | Content.Text
---------------------------------------------------------------------------------------------------------------------------------
1 | "Page1" | 20200101 | ...... | 2 | 1 | "Key1" | 2 | ......
1 | "Page1" | 20200101 | ...... | 4 | 1 | "Key2" | 2 | ......
1 | "Page1" | 20200101 | ...... | 5 | 1 | "Key3" | 1 | ......
解决方案
我们需要更多信息。要获得最新结果,您可以对输出进行排序并限制结果数量,如下所示:
SELECT PageID FROM Contents WHERE PageID=$pageid ORDER BY id DESC LIMIT 3
推荐阅读
- codeigniter - 有没有办法可以根据下拉选择框自动填写输入表单?
- android - 为什么我不能使用 FileProvider 在 Android 9 中删除文件?
- javascript - 使用 JS 和 Laravel 为现有 cookie 值添加值
- typo3 - 在 TYPO3 中替换图像的简单方法
- vba - 使用 VBA 获取导向的精确 x/y 位置,以便将形状与其精确对齐
- ios - 如何计算从中心点到 UIView 上特定点的距离
- java - 当表 ID 具有虚拟列时,无法使用 JPA 进行插入
- python - 如何使用一个提交按钮在 django 中提交多个清晰的表单?
- winapi - 为什么 FindWindowEx 找不到工具提示类
- c# - 等待调用进入异常