MYSQL查询,加入2表的问题

DIM*_*ION 6 mysql join group-by

我有这个查询 -

SELECT interest_desc, categoryID, MAX(num_in_cat) AS num_in_cat 
FROM
(
   SELECT interest_desc, categoryID, COUNT(categoryID) AS num_in_cat
   FROM interests
   GROUP BY interest_desc, categoryID
 ) subsel 
 GROUP BY interest_desc, categoryID
Run Code Online (Sandbox Code Playgroud)

我想更改它,以便最终可以从一个名为的单独表中显示类别名称categories.我能显示的是categoryIDinterests这个SQL

两个表结构都是

#interests

CREATE TABLE `interests` (
 `interestID` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(100) NOT NULL,
 `categoryID` int(11) NOT NULL,
 `sessionID` int(11) NOT NULL,
 `interest_desc` varchar(30) NOT NULL,
 `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
 PRIMARY KEY (`interestID`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8   
Run Code Online (Sandbox Code Playgroud)

类别表结构

# categories
CREATE TABLE `categories` (
 `categoryID` int(11) NOT NULL AUTO_INCREMENT,
 `category_desc` varchar(100) NOT NULL,
 PRIMARY KEY (`categoryID`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
Run Code Online (Sandbox Code Playgroud)

我知道需要某种类型的连接,但我已经查看了示例并且正在努力获得确切的语法.

我在php脚本中有这个 - echo语句是这样的

"{$result['interest_desc']} was the most popular in category   {$result['categoryID']}    with {$result['num_in_cat']} occurrences\n";
Run Code Online (Sandbox Code Playgroud)

它的输出是这个 -

"Adidas was the most popular in category 5 with 1 occurrences"
Run Code Online (Sandbox Code Playgroud)

我希望输出为"阿迪达斯是体育界最受欢迎的一次出现"

但是我的SQL查询没有功能category_desc.

小智 0

SELECT * FROM interests i LEFT JOIN categories c ON i.categoryID = c.categoryID

我还没有测试过。可能存在语法错误。