使这个mysql连接代码更短

时间:2012-03-27 15:46:39

标签: mysql

我有2个表,faq和faq_categories,我想加入它们以从表faq_categories中获取类别名称。

faq_categories中唯一需要的字段是名称,而从faq表中我需要所有字段。

我有以下语法(有效)我​​希望缩短它。

以下是代码:

     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获取categoryname。

第一段代码片段有效,但如果可能,我希望缩短它。

任何帮助都将深受赞赏。

关心,佐兰

2 个答案:

答案 0 :(得分:1)

使用faq.*, faq_catergories.categoryname

答案 1 :(得分:0)

使用faq.*。只需使用*即可请求所有表中的所有列。

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

但请注意,除非faq中有很多列,否则通常建议您明确选择哪些列。这允许您指定它们发生的顺序,并保护您免受可能导致不需要的大量额外列被拉出的架构更改。您明确列出SELECT中列的第一直觉可能更可取。