使用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.date
,book.title
,author.name
..
答案 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