2012-03-27 12 views
0

Ich habe 2 Tabellen, faq und faq_categories, und ich möchte ihnen beitreten, um den Kategorienamen aus der Tabelle faq_categories zu erhalten.diesen mysql join code kürzer machen

Das einzige Feld, das ich von den faq_categories benötige, ist der Name, während von der FAQ-Tabelle ich alle Felder benötige.

Ich habe die folgende Syntax (die funktioniert), die ich möchte es kürzer machen. Hier

ist der Code:

 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) 

Ich versuche, alle Felder mit diesem Code zu wählen:

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

Aber diese Syntax gibt mir alle Felder aus beiden Tabellen, die nicht das, was ich will . Was ich will, ist, alle Felder von faq zu bekommen, und nur Kategoriename von faq_categories.

Erste Code-Snippets funktioniert, aber ich möchte es kürzer machen, wenn das möglich ist.

Jede Hilfe wird sehr geschätzt.

Grüße, Zoran

Antwort

0

Verwendung faq.*. Wenn Sie einfach * verwenden, werden alle Spalten aus allen Tabellen angefordert. jedoch

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

Beachten Sie, dass, wenn es eine ganze Reihe von Spalten in faq ist, ist es im Allgemeinen explizit sein empfohlen, welche Spalten auswählen. Auf diese Weise können Sie die Reihenfolge angeben, in der sie auftreten, und Sie vor Schemaänderungen schützen, die dazu führen können, dass eine große Anzahl zusätzlicher Spalten abgerufen wird, die nicht benötigt werden. Ihr erster Instinkt, Spalten explizit in Ihrem SELECT aufzulisten, ist wahrscheinlich vorzuziehen.

+0

Ja, das macht den Trick. Ich werde in der Lage sein, Ihre Antwort in 8 Minuten zu akzeptieren, aufgrund dieser Website Einschränkungen. Danke vielmals. Ich habe nur 10 Felder im FAQ-Tisch, und ich brauche sie alle. Nochmals vielen Dank für Ihre Hilfe. - Zoran – Zoran

1

verwenden faq.*, faq_catergories.categoryname

+0

ja, funktioniert, aber ich bekomme alle Felder aus beiden Tabellen. Was ich will, ist alle Felder von faq, und nur Kategorie Name von faq_categories – Zoran

+0

Meine Antwort unterscheidet sich nicht von Michaels ^^ !! Sollte die vollständige Abfrage gestellt haben;) –

Verwandte Themen