我试图通过引用多个表中的主键来检索值,但无法获得结果。这是表
密度表
**de_id density color**
1 21 red
2 22 blue
3 23 green
4 24 yellow
5 25 orange
尺寸表
**si_id length breadth**
1 21 41
2 22 42
3 23 43
4 24 44
5 25 45
Order_de表
**or_id density color length breadth**
1 1 2 3 4
2 4 3 2 1
我想解决的问题是
SELECT density.density,density.color,size.length,size.breadth,order_de.or_id from
density,size,order_de WHERE order_de.density=density.de_id and
order_de.color=density.de_id and order_de.length=size.si_id and
order_de.breadth=size.si_id order by order_de.or_id asc
期望的结果应该是
density color length breadth or_id
21 blue 23 44 1
24 green 22 41 2
但查询没有检索到任何内容。 任何人都可以帮忙吗?
答案 0 :(得分:1)
您需要为每个属性单独连接表:密度,颜色,长度和宽度。另外,不要使用隐式连接样式。我认为这有助于您在制作此查询时产生混淆。
SELECT d1.density, d2.color, s1.length, s2.breadth, o.or_id
FROM Order_de o
INNER JOIN Density d1
ON o.density = d1.de_id
INNER JOIN Density d2
ON o.color= d2.de_id
INNER JOIN Size s1
ON o.length = s1.si_id
INNER JOIN Size s2
ON o.breadth = s2.si_id
ORDER BY o.or_id asc