SQL加 - 别名类型的问题

问题描述:

我需要找到每本书其价格低于账面价格为每本书具有类型“HOR”大书代码和书名。我的表看起来像这样SQL加 - 别名类型的问题

CREATE TABLE BOOK (
    BOOK_CODE CHAR(4) CONSTRAINT BOOK_BOOK_CODE_PK PRIMARY KEY, 
    TITLE VARCHAR2(40) CONSTRAINT BOOK_TITLE_NN NOT NULL, 
    PUBLISHER_CODE CHAR(2) CONSTRAINT BOOK_PUBLISHER_CODE_FK REFERENCES PUBLISHER(PUBLISHER_CODE), 
    TYPE CHAR(3), (this is where the 'HOR' is located) 
    PRICE NUMBER(4,2), 
    PAPERBACK CHAR(1) 
); 

我已经尝试了几种不同的方式,但我很茫然。我假设我将不得不使用别名?

+0

显示您尝试过的一些方法无效。 – 2009-11-20 20:10:39

+0

这工作,但我不知道我明白为什么。当我尝试的100个不同的版本1,我创建如... SELECT MIKEC.BOOK_CODE,MIKEC.TITLE,MIKEC.TYPE,MIKEC.PRICE,BOOK.BOOK_CODE,BOOK.TITLE,BOOK.TYPE,BOOK.PRICE FROM BOOK,BOOK MIKEC WHERE MIKEC.PRICE> BOOK.PRICE AND MIKEc.TYPE = 'HOR'; 我选择了59行,但似乎并不正确 – Michael 2009-11-20 20:32:28

不一定。你可以使用一个嵌套的SELECT这样的:

SELECT 
    BOOK_CODE, 
    TITLE 
FROM 
    BOOK 
WHERE 
    PRICE > (SELECT MAX(PRICE) FROM BOOK WHERE TYPE = 'HOR')) 
+0

你不应该回答这样的问题,直到原来的海报向人们展示了他们已经试过,没有工作。在没有任何努力的情况下给出答案就是鼓励人们不要自己去学习;有一天,你或我可能最终不得不维护他们“写下”的代码,我宁愿不要这样做。 – 2009-11-20 20:12:16

+0

这是真的,@肯白。好点子。 – karlgrz 2009-11-20 20:13:06

+0

相信我,我不想要这个答案,因为我想知道原因。相信我,你离我维护的代码还有很长的路要走。我只是在学习。 SELECT MIKEC.BOOK_CODE,MIKEC.TITLE,MIKEC.TYPE,MIKEC.PRICE,BOOK.BOOK_CODE,BOOK.TITLE,BOOK.TYPE,BOOK.PRICE FROM BOOK,BOOK MIKEC WHERE MIKEC.PRICE> BOOK.PRICE AND MIKEc.TYPE ='HOR'; 我不知道为什么嵌套的作品。 – Michael 2009-11-20 20:36:46

SELECT a.book_code, a.title 
FROM book a, book b 
WHERE a.price > b.price 
AND b.type = 'HOR' 

可能?

+0

查看我对KG的评论。 – 2009-11-20 20:12:54

+0

够公平的,点收到。 – dhorn 2009-11-20 20:36:49