2011-04-21 158 views
0

我建3台问题与SQL左连接

tb1 for book 
tb2 for sub subject 
tb3 for main subject 

每本书有1个主题,每个子课题有1个主课题 我想使本书之间的连接=>子主题=>主要议题

我做的书和子对象之间加入,但次要对象之间不能让与主要对象

select book.id, book.titl, subsubject.title, mainsubject.title 
from book 
left join subsubject on book.id = subsubject.book_id 

我想完成这个语句添加主要议题

回答

1

哇,我想我明白...... 你想要的东西,如:

SELECT book.id, book.titl, subsubject.title, mainsubject.title FROM book,subsubject,mainsubject WHERE book.id = subsubject.book_id AND subsubject.book_id=mainsubject.book_id

你可以replce的WHERE用;

LEFT JOIN subsubject on book.id = subsubject.book_id LEFT JOIN mainsubject on book.id = mainsubject.book_id

而且,你的意思book.title?

(我的SQL可能不是完美的,但应该工作)

0

试试这个:

select book.id, book.titl, subsubject.title, mainsubject.title 
from book 
left join subsubject on book.id = subsubject.book_id 
left join mainsubject on subsubject.book_id=mainsubject.book_id 
0

诀窍是可能是你需要子,比书本的主要之间不同的连接条件和子:

select * 
from book join sub on book.id = sub.book_id 
    join main on sub.sub_id = main.sub_id 

我不知道为什么,如果每本书都必须有一个主题左(=外)加入,将需要与每个科目需要一个主。

0

尝试:

select b.id, b.title, s.title, m.title 
from book b 
left join subsubject s 
    on s.id = b.ss_id 
left join mainsubject m 
    on m.id = b.m_id 
where b.id = (id of book you'd like) 

希望这有助于。