2015-09-06 27 views
1

我有三个表:PHP的MySQL三人离开join方法

文章:

|id|title|timestamp|...... 

group_tags:

|id|content_id|tags_id 

tags_name:

|id|name| 

我需要列出文章标题与任何标签ID:

function _tags_search_($id,$type){ 
    $DB_QUERY = mySqli::f("SELECT title FROM " . ARTICLES . " LEFT JOIN " . POSTS_TAGS . " ON " . ARTICLES . ".id = " . POSTS_TAGS . ".content_id WHERE 
    " .POSTS_TAGS . ".tags_id = ? AND approved = 1 ORDER BY timestamp DESC LIMIT 12", $id); 

     foreach($DB_QUERY as $row){ 
     $data[] = $row; 
     } 

    return $data; 
} 

这对我有用,并显示文章标题列表。

但我需要在另外的标签ID显示标签名称列出标题是这样的:

Search result for : Linux 

我有两个办法:

  • 三人离开,如果真如何连接方法(

  • 获取显示标签名称的另一个查询。

我觉得three join是更好更快发展。如何使用three join方法显示标签名称?

回答

0

试试这个

SELECT title, name from 
group_tags g 
INNER JOIN article ON a.id = g.content_id 
INNER JOIN tags_name t ON t.id = g.tags_id 

让我知道,如果你面对任何问题