我需要使用其关键的ModelID从“模型”表中选择一个特定的模型。我还需要从Model_Content表中添加内容的内容。但是,Models_Content表具有每个模型的多个内容内容。我只需要选择第一个对象。
我的表如下所示:
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, M.Model, 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, M.Model, C.Content
FROM
Models M
LEFT JOIN
sorted_content C
ON C.ModelID = M.ModelID
AND C.itemID = 1
WHERE
M.ModelID = 5
关于sql - 如何在左联接中选择单个记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7363930/