关于连接的MySQL简单查询

时间:2017-05-25 12:42:33

标签: mysql

ERD Image

我是大学。来自韩国的学生,首先对我的英语能力表示遗憾:D

我设计了简单的书店数据库,但是我很难写出查询:(如何用ERD打印如下?

[ISBN,title,writer.name,page,price,publisher.name,publish_date,topic,review]

如果作者和主题是2和更多,然后打印所有元组。你能帮帮我们吗?

2 个答案:

答案 0 :(得分:1)

这是一个简单的问题,当你想要从连接表中找到任何值时,就像过程查询一样:

需要customer.address,基表:书 所以:预订加入购买 - >加入客户 - >抓住价值#它会死在这里,让我们去另一个价值。

需要topic.name,基表:book 所以:预订加入主题 - >抓住价值#next

不再,让我们进行查询:

select 
    book.ISBN
    book.title
    book.price
    book.publisher_date
    writer.name as WriterName /* if you need an alias */
    publisher.name as PublisherName /* if you need an alias */
    topic.name as TopicName /* if you need an alias */
    purchase.review
    /* bonus */
    customer.phone_number

 from book 
     left join writer on writer.cook_id = book.id
     left join topic on topic.cook_id = book.id
     left join publisher on publisher.id = book.publisher_id
     left join purchase on purchase.book_id = book.id /* first */
         left join customer on purchase.customer_id = customer.id /* second */

我认为它有效。 :)

答案 1 :(得分:0)

快速模拟。我对表结构做了假设。三个表,一个用于书,一个用于作者一个用于评论。

我使用左连接,因为我假设您将根据书籍进行查询,ISBN是表格唯一键。 加入可能需要一些时间来弄清楚,所以如果你需要帮助加入这个网站可能会有所帮助。 the log4j FAQ, class path issues are a common source of problems in WAR apps

select
        boo.ISBN, 
        boo.title, 
        au.author_name,
        boo.pages,
        boo.price,
        boo.publisher,
        boo.publish_date,
        boo.genre,
        rev.review  

        from books as boo
            left join author as au
                on boo.authorID = au.authorID
            left join reviews as rev
                on rev.ISBN = boo.ISBN
        where boo.ISBN = XXXX;

如果您需要帮助制作ERD本身,还有另一篇stackexchange文章,如果我误读了最初的问题https://www.techonthenet.com/mysql/joins.php

,可能会有所帮助
相关问题