(MySQL)查询具有多级表的多列?

时间:2011-11-24 10:34:47

标签: mysql database select join

使用MySQL,如何在3级深度查询表中的列?

我的意思是:
[main table] ---> [child table 1] ---> [child table 2]
> C#1's ID -------- > C#2's ID ------------ > String Column

例如:

[交易]
- id
- bookid *
- 日期
- 工作人员

[图书]
- id
- authorid *
- 标题

[作者]
- id
- 姓名

只知道transaction.id,那么如何查询结果,包括以下列? .. transaction.datebook.titleauthor.name ..

3 个答案:

答案 0 :(得分:1)

select t.date,b.title,a.name from book b  
innerjoin transaction t on t.bookid = b.id 
innerjoin author a on b.authorid = a.id

答案 1 :(得分:0)

select transaction.date , book.title , author.name
from transaction
     join book on transaction.bookid=book.id
     join author on book.authorid=author.id
where transaction.id=<id>;

在此处查看有关加入的详情http://dev.mysql.com/doc/refman/5.5/en/join.html

答案 2 :(得分:0)

使用MySQL join语法。

SELECT transaction.date , book.title , author.name 
FROM transaction 
     LEFT OUTER JOIN book ON transaction.bookid=book.id 
     LEFT OUTER JOIN author ON book.authorid=author.id 
WHERE transaction.id={your_transaction_id}

我使用OUTER JOIN因为即使从DB中删除了书籍或作者,它也会返回事务。在这种情况下,结果将如下所示:'2011-01-12',NULL,NULL