我是大学。来自韩国的学生,首先对我的英语能力表示遗憾:D
我设计了简单的书店数据库,但是我很难写出查询:(如何用ERD打印如下?
[ISBN,title,writer.name,page,price,publisher.name,publish_date,topic,review]
如果作者和主题是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
,可能会有所帮助