【问题标题】:php mysql three left join methodphp mysql 三左连接方法
【发布时间】:2015-09-06 08:46:51
【问题描述】:

我有三张桌子:

文章:

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

group_tags:

|id|content_id|tags_id

标签名称:

|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 方法显示标签名称?!

【问题讨论】:

    标签: php mysql join left-join


    【解决方案1】:

    试试这个

    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
    

    如果您遇到任何问题,请告诉我

    【讨论】:

      猜你喜欢
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-13
      • 2019-04-08
      • 1970-01-01
      相关资源
      最近更新 更多