Tôi có truy vấn này -MYSQL truy vấn, tham gia 2 bảng của vấn đề
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
Tôi muốn thay đổi nó vì vậy mà tôi cuối cùng có thể hiển thị tên loại từ một bảng riêng biệt gọi là categories
. Tất cả tôi có thể hiển thị là categoryID
từ interests
với sql này
Cả hai cấu trúc bảng là
#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
loại cấu trúc bảng
# 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
Tôi biết một tham gia của một số loại là cần thiết nhưng tôi đã xem xét tại các ví dụ và đang đấu tranh để có được cú pháp chính xác.
Tôi có điều này trong một kịch bản php - báo cáo kết quả echo là này
"{$result['interest_desc']} was the most popular in category {$result['categoryID']} with {$result['num_in_cat']} occurrences\n";
và đầu ra của nó là thế này -
"Adidas was the most popular in category 5 with 1 occurrences"
Tôi muốn đầu ra là "Adidas là phổ biến nhất trong Thể thao với 1 lần xuất hiện "
Tuy nhiên truy vấn sql của tôi không có tính năng category_desc
.
tôi nhận được lỗi này với điều này - đúng cú pháp để sử dụng gần 'int bên tham gia loại như mèo trên int.categoryID = cat.categoryID GRO' tại dòng 5 – DIM3NSION
Thử thay thế 'AS int' thành' AS ints' và thay thế tất cả các từ 'int' thành' ints' khác. int có thể được dành riêng từ. –