2010-12-18 76 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