2012-03-27 44 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