2014-01-18 256 views
-1

我的项目有几张图片存储在一张表中。选择语句只选择一个值

我想只检索第一个图像。

我该怎么做?

这是我的代码:

SELECT DISTINCT 
    Item.ItemID, Item.Name, Item.Description, Item.Quantity, 
    Item.Condition, Category.Name AS Expr1, Auction.EndDate, Auction.CurrencyValuePost, 
    Image.Image 
FROM 
    Item 
INNER JOIN 
    Category ON Item.CategoryID = Category.CategoryID 
INNER JOIN 
    Image ON Item.ItemID = Image.ItemID 
INNER JOIN 
    Auction ON Item.ItemID = Auction.ItemID 
WHERE   
    (Auction.Status = 'Valid') 
+1

如果我用TOP你可以使用顶部1而不是 –

+0

1,它会给仅在第一记录我,我希望每一个项目在表中,但只有表中的第一张图片 – user1784696

+0

作为第一个图像您指Image.Image?如果我理解正确,你想选择只有一列的表 - 图像? – Marek

回答

0

试试这个

Select * From 
(
SELECT 
    Item.ItemID, 
    Item.Name, 
    Item.Description, 
    Item.Quantity, 
    Item.Condition, 
    Category.Name AS Expr1, 
    Auction.EndDate, 
    Auction.CurrencyValuePost, 
    Image.Image, 
    ROW_NUMBER() OVER(PARTITION BY Item.ItemID ORDER BY Item.ItemID ASC) AS RN 
FROM Item 
    INNER JOIN Category ON Item.CategoryID = Category.CategoryID 
    INNER JOIN Auction ON Item.ItemID = Auction.ItemID 
    LEFT JOIN Image ON Item.ItemID = Image.ItemID 
WHERE Auction.Status = 'Valid' 
) AS T 
Where RN=1 
+0

我已经在这里添加。请检查现在 –

+0

这一个是好的谢谢:) – user1784696

+0

@ user1784696标记有用,如果它是帮助你 –

0
SELECT 
    Item.ItemID, 
    Item.Name, 
    Item.Description, 
    Item.Quantity, 
    Item.Condition, 
    Category.Name AS Expr1, 
    Auction.EndDate, 
    Auction.CurrencyValuePost, 
    Image.Image 
FROM Item 
    INNER JOIN Category ON Item.CategoryID = Category.CategoryID 
    INNER JOIN Auction ON Item.ItemID = Auction.ItemID 
    LEFT JOIN Image ON Item.ItemID = Image.ItemID 
WHERE  (Auction.Status = 'Valid') 
+0

不工作:(代码不好 – user1784696

+1

@ user1784696也许你应该更好地发布表格结构。 – Marek