我的问题是我无法查询匹配的记录。SQL Server内部加入Where子句
查询应做到以下几点:
ID | Name | Value
-- | ------ | ------
1 | Color | Red
1 | Color | Blue
1 | Color | Green
1 | Sizes | 1cm
1 | Sizes | 5cm
2 | Color | Yellow
2 | Color | Green
2 | Sizes | 5cm
2 | Sizes | 10cm
查询1:
- 颜色为红色或蓝色
-AND- - 尺寸埃= 1cm
返回匹配记录DS(ID = 1)
问题2:
- 颜色=黄色或绿色
-AND- - 大小=5厘米
返回匹配的记录(ID = 1 ,2)
我的查询:
SELECT a.ID, b.Name, c.Value
FROM table1 a
INNER JOIN table2 b ON a.Id = b.aId
INNER JOIN table3 c ON b.ID = c.bId
WHERE (c.Value = (CASE b.Name WHEN 'Color' THEN 'Red' END)
OR
c.Value = (CASE b.Name WHEN 'Color' THEN 'Blue' END)
)
AND (c.Value = (CASE b.Name WHEN 'Sizes' THEN '1cm' END))
它不工作方式:(
我会很高兴,如果你能帮助我。
这绝对不是设置数据库表的方法。甚至可以查看规范化,谷歌或维基百科。 – Edward