数据库编程加入

时间:2014-11-26 17:24:03

标签: mysql sql

很抱歉,我不知道如何格式化,因此看起来很可读。

这是我的任务:查找价格高于至少一本HOR类型书籍价格的每本图书的图书代码和图书标题。

这是我到目前为止提出的第一个问题:

select b.book_code, b.title, b.price from book b
    inner join book b1 on b.price > b1.price
    where b.type = 'HOR';

我的表格如下:

  

块引用

mysql> describe book;
+----------------+--------------+------+-----+---------+-------+
| Field          | Type         | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| BOOK_CODE      | char(4)      | NO   | PRI | NULL    |       |
| TITLE          | char(40)     | YES  |     | NULL    |       |
| PUBLISHER_CODE | char(3)      | YES  |     | NULL    |       |
| TYPE           | char(3)      | YES  |     | NULL    |       |
| PRICE          | decimal(4,2) | YES  |     | NULL    |       |
| PAPERBACK      | char(1)      | YES  |     | NULL    |       |
+----------------+--------------+------+-----+---------+-------+
6 rows in set (0.09 sec)
  

块引用

感谢您的帮助。

以下是我的查询返回的内容:

 mysql> select b.book_code, b.title, b.price from book b
        ->  inner join book b1 on b.price > b1.price
        ->  where b.type = 'HOR';
    +-----------+-----------------------+-------+
    | book_code | title                 | price |
    +-----------+-----------------------+-------+
    | 0189      | Magic Terror          |  7.99 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 0189      | Magic Terror          |  7.99 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 0189      | Magic Terror          |  7.99 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 0189      | Magic Terror          |  7.99 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 0189      | Magic Terror          |  7.99 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 0189      | Magic Terror          |  7.99 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 0189      | Magic Terror          |  7.99 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 0189      | Magic Terror          |  7.99 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 0189      | Magic Terror          |  7.99 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    | 1351      | Dreamcatcher: A Novel | 19.60 |
    | 9611      | Black House           | 18.81 |
    +-----------+-----------------------+-------+
    62 rows in set (0.00 sec)

    mysql>

5 个答案:

答案 0 :(得分:0)

SELECT `BOOK_CODE`, `TITLE` 
FROM 
`Books` 
WHERE `PRICE` > 
(
    SELECT 
    MIN(`PRICE`) 
    FROM 
    `Books` 
    WHERE 
    `TYPE` = 'HOR'; 
) AS sq 

这应该选择书籍代码和标题WHERE,价格大于HOR类型书籍的最低价格。

答案 1 :(得分:0)

我会尝试这样的事情。

select b.book_code, b.title, b.price 
from book b
where b.price > (select min(book.prince) from book where book.type = 'HOR')

答案 2 :(得分:0)

“技巧”是在where子句中使用子查询,如下所示:

select b.book_code, b.title, b.price 
from book b
where b.price > (select min(price) from book where type = 'HOR');

答案 3 :(得分:0)

使用嵌套查询。

Select book_code, title, price from book
where price > (select min(price) from book where type = "HOR");

答案 4 :(得分:0)

回答子查询:

select b.book_code, b.title, b.price from book b
WHERE b.price > (SELECT MIN(price) FROM book WHERE type = 'HOR');


select b.book_code, b.title, b.price from book b
WHERE b.price > ANY(SELECT price FROM book WHERE type = 'HOR');


select b.book_code, b.title, b.price from book b
WHERE EXISTS (SELECT 1 from book b1 WHERE b1.type = 'HOR' AND b.price > b1.price);