2010-12-18 78 views
1

我应该重写一个SQL查询而不使用子查询。 我的解决方案至极使用子查询:'简单'的sql查询。重写它,而不使用子查询

SELECT * from parts WHERE weight > (SELECT weight from parts WHERE name = 'tape-drive');

的简化版本我的表 '零件' 的:

NAME WEIGHT
----------------------
line-printer 520
tape-drive 100
line-printer 520
tape-drive 100
byte-soap 75
card-punch 120

我已经思考了相当一段时间,我无法弄清楚。 帮助将appriciated。

回答

3

回答,因为它不是我可以经常的;

SELECT P1.* 
    from parts P1 
    join parts P2 on 
     P1.weight > P2.weight 
WHERE P2.name = 'tape drive' 
+0

你确定?我收到了2个查询的不同结果... – 2010-12-18 03:32:02

+0

不,我不确定。我的大脑在星期五晚上很美。 – 2010-12-18 03:47:43

+0

它确实有效。但是我读的东西在这种情况下似乎没用。必须阅读错误的东西。 – 2010-12-21 23:59:02

0

我不会为你做你的功课,但我会给你一个推动。您想要在零件表上使用自我INNER JOIN。

+0

嗨丹尼,小心发布你的解决方案?... – 2010-12-18 03:35:59

+0

谢谢先生,很高兴知道。 – 2010-12-31 09:30:10