加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 如何在左连接中选择单个记录

发布时间:2020-12-12 16:31:25 所属栏目:MsSql教程 来源:网络整理
导读:我需要使用ModelID键从Models表中选择一个特定的模型.我还需要从Model_Content表中添加一些内容.但是,Models_Content表对于每个模型都有几个内容的blurbs.我只需要选择第一个blurb. 我的表格如下所示: Models // table ModelID // pk Model // varchar Model
我需要使用ModelID键从Models表中选择一个特定的模型.我还需要从Model_Content表中添加一些内容.但是,Models_Content表对于每个模型都有几个内容的blurbs.我只需要选择第一个blurb.

我的表格如下所示:

Models // table
 ModelID // pk
 Model // varchar

 Models_Content // table
 ContentID // pk
 ModelID // fk
 Content // varchar

 SELECT M.ModelID,M.Model,C.Content
 FROM   Models M LEFT JOIN Models_Content C ON M.ModelID =  C.ModelID
 WHERE      M.ModelID = 5

如何调整我的查询以仅选择特定模型的最初的内容?

解决方法

SELECT
   M.ModelID,C.Content
 FROM
   Models M
 LEFT JOIN
   Models_Content C
     ON C.ContentID = (SELECT MIN(ContentID) FROM Models_Content WHERE ModelID = M.ModelID)
 WHERE
   M.ModelID = 5

要么

;WITH sorted_content AS
(
  SELECT
    ROW_NUMBER() OVER (PARTITION BY ModelID ORDER BY ContentID) AS itemID,*
  FROM
    Models_Content
)
 SELECT
   M.ModelID,C.Content
 FROM
   Models M
 LEFT JOIN
   sorted_content C
     ON  C.ModelID = M.ModelID
     AND C.itemID  = 1
 WHERE
   M.ModelID = 5

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读