2010-07-17 80 views
0

我有這些表。加入SQL表?

+0

什麼d你的意思是「截斷」? – Donnie 2010-07-17 14:05:14

+2

我看不到將問題鏈接到答案的共同字段? – 2010-07-17 14:06:05

+0

@Donnie對不起,我的意思是加入, – kn3l 2010-07-17 14:10:09

回答

1

選擇
q.question的問題,
q.date_add日期,
q.publish可以發佈,
q.user_id作爲用戶,
qcat.name的類別,
qans.answer as answer,
qans.publish as anspublish
from
#__qa_question爲q,
#__qa_category_xref如qcatref,
#__qa_category如qcat,
#__qa_answer_xref作爲qansref
#__qa_answer作爲qans
其中
q.qid = qcatref.qid
和qcat.catid = qcatref.catid
和q.quid = qansref.qid
和qans.aid = qansref.aid


1

下面是10首發(我假設user_id列包含用戶名,但在現實中可能是另一個表):

SELECT q.question AS "Question", 
     q.date_add AS "date", 
     q.publish AS "publish", 
     q.user_id AS "user name", 
     c.name AS "category", 
     a.answer AS "answer", 
     a.publish AS "publish" 
    FROM #__qa_question q 
    LEFT OUTER JOIN #__qa_category_xref cx ON (cx.qid = q.qid) 
    LEFT OUTER JOIN #__qa_category c ON (c.catid = cx.catid) 
    LEFT OUTER JOIN #__qa_answer_xref ax ON (ax.qid = q.qid) 
    LEFT OUTER JOIN #__qa_answer a ON (a.aid = ax.aid) 

使用外連接,保證讓你看到每一個問題即使它沒有答案或沒有類別。

當然,如果(如xref表所示)每個問題都有很多答案和很多類別,那麼您會看到每個問題的很多行,每個答案和類別組合都有一個。

1

假設#__ qa_category_xref.id是FK到#__qa_answer。 (假設沒有#__qa_answer_xref表)。

select q.qid as [s/n], question, q.date_modify as [date], q.publish as publish 
, user_id /*as no user table specified*/, c.name as category, answer, a.publish 
from #__qa_question as q 
join #__qa_category_xref as xref on q.qid = xref.qid 
join #__qa_answer as a on a.aid = xref.id 
join #__qa_category as c on c.catid = xref.catid