2012-03-27 63 views
0

我有2個表,faq和faq_categories,我想加入他們從表faq_categories中獲取類別名稱。使這個mysql加入代碼更短

我需要從faq_categories中唯一的字段是名稱,而從常見問題解答表中,我需要所有字段。

我有以下語法(哪些工作),我想使它更短。

下面是代碼:

 SELECT faq.faqid, faq.catid, faq.question, faq.question_en, faq.answer,  
     faq.answer_en, faq.sorder, faq.visible, 
     faq_categories.categoryname 
FROM faq 
JOIN faq_categories ON (faq.catid = faq_categories.catid) 

我想選擇與此代碼的所有領域:

SELECT * , faq_categories.categoryname 
FROM faq 
JOIN faq_categories ON (faq.catid = faq_categories.catid) 
LIMIT 0 , 30 

但這種語法返回我的兩個表中的所有字段是不是我想要的。我想要的是從faq中獲取所有字段,並僅從faq_categories中獲取類別名稱。

第一個代碼片段有效,但如果可能的話,我希望縮短它的長度。

任何幫助將深表謝意。

問候,卓然

回答

0

使用faq.*。只需使用*將請求所有表中的所有列。

SELECT 
    faq.* , 
    faq_categories.categoryname 
FROM faq 
    JOIN faq_categories ON (faq.catid = faq_categories.catid) 
LIMIT 0 , 30 

不過請注意,除非有在faq相當多列,所以通常建議要明確你的選擇的列。這使您可以指定它們發生的順序,並防止出現模式更改,這可能會導致大量額外的列被拉出而不需要。你的第一本能明確列出你的SELECT列可能是可取的。

+0

是的,這是做的伎倆。由於本網站的限制,我將能夠在8分鐘內接受您的答案。非常感謝。我在faq表中只有10個字段,我需要它們。再次感謝您的幫助。 - 卓然 – Zoran 2012-03-27 15:54:47

1

使用faq.*, faq_catergories.categoryname

+0

是的,工作,但我從兩個表中獲取所有字段。我想要的是來自常見問題解答的所有字段,並且只有類別名稱來自faq_categories – Zoran 2012-03-27 15:51:59

+0

我的答案與邁克爾的^^沒有什麼不同!應該已經把完整的查詢;) – 2012-03-27 16:16:00