私はこのクエリを持っています -
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
最終的に という別のテーブルからカテゴリ名を表示できるように変更したいと考えていますcategories
。表示できるのは、この sqlのcategoryID
fromだけですinterests
どちらのテーブル構造も
#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
カテゴリ テーブル構造
# 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
ある種の結合が必要であることは知っていますが、例を見て、正確な構文を取得するのに苦労しています。
これはphpスクリプトにあります-エコーステートメントはこれです
"{$result['interest_desc']} was the most popular in category {$result['categoryID']} with {$result['num_in_cat']} occurrences\n";
そしてその出力はこれです -
"Adidas was the most popular in category 5 with 1 occurrences"
出力を「スポーツで最も人気があったのは Adidas で、出現回数は 1 でした」
ただし、私のSQLクエリには機能がありませんcategory_desc
。