0

我有一个临时表,可以将值插入其中,例如;

SELECT ColourID
INTO #TEMP
FROM [Orders]
WHERE [Order] = 12345

然后稍后我有一个声明,它做了这样的事情;

SELECT ColourName
FROM Colours
WHERE [ID] IN(SELECT ColourID FROM #TEMP)

DROP TABLE #TEMP

这将返回;

Yellow
Red

我知道在 this 上有几个 Red 实例,Redorder的 ID 在每个实例的临时表中。如何显示每个实例?我试过执行 aCOUNT但是在每种颜色旁边返回一个。

4

4 回答 4

3

如果我对您的理解正确,您希望为每个包含红色的订单行显示“红色”。然后你需要INNER JOIN

SELECT c.ColourName, t.* FROM #TEMP as t INNER JOIN Colours as c ON t.ColourID = c.ID
于 2013-10-07T14:32:25.133 回答
1

如果我理解正确,您需要一个连接来显示临时表中每个实例的非唯一颜色:

SELECT ColourName
FROM Colours, #TEMP
WHERE ID = ColourID
于 2013-10-07T14:35:58.340 回答
0
SELECT DISTINCT ColourName
FROM Colours
WHERE [ID] IN(SELECT ColourID FROM #TEMP)

应该做的伎俩...

于 2013-10-07T14:31:26.040 回答
0

FROM Colours

那不是查找表吗?因此每种颜色只定义一次?

这就是你所追求的吗?

SELECT *
FROM [Orders] ords
where exists (select null from  #TEMP tem where tem.ColourID = ords.ColourID )
于 2013-10-07T14:32:39.737 回答