[英]Issues with SQL JOIN failing
我嘗試創建以下JOIN
。
SELECT rating_draft_result.COUNT(id), rating_draft_result.user_id, rating_draft_result.result
FROM rating_draft_result
INNER JOIN users ON
rating_draft_result.user_id, rating_draft_result.result = users.id
我想COUNT
總id
“的rating_draft_result表秒,然后又SELECT
user_ID的,並從該表中的結果。 然后,我試圖將user_id和rating_draft_result表的結果與用戶的id列進行匹配。 然后,我想從ID匹配的用戶表中獲取用戶名,但是我無法弄清楚那部分,並且無論如何我還是遇到了以下代碼錯誤。
我收到以下錯誤。
調查SELECT總計數prepare()失敗:SQL語法有錯誤; 檢查與您的MySQL服務器版本相對應的手冊,以在第4行的'.id'附近使用正確的語法
我的數據庫表看起來像這樣...
users
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`firstname` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`lastname` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`phone_number` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
`username` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`password` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`salt` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
`joined` datetime NOT NULL,
`group` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=105 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
rating_draft_result
CREATE TABLE `rating_draft_result` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`result` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=28 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
我在查詢中做錯了什么?
期望的輸出:
用戶CREATE TABLE users
( id``firstname``lastname``email``phone_number``username``password``salt``joined
group
1 Jack Johnson jack@email.com 2222 jackusername ffd fdddfd today 1
10 Tom Thompson fdfdfddf@fef.com 5555 Tomusername
rating_draft_result
`id` `user_id` `result`
20 1 10
我希望能夠將rating_draft_result的user_id
和result
與用戶表的id字段進行匹配。
所以我想獲取jackusername和tomusername字段。
檢查JOIN
條件
SELECT rating_draft_result.user_id, rating_draft_result.result, COUNT(*)
FROM rating_draft_result
INNER JOIN users
ON rating_draft_result.user_id = users.id
GROUP BY rating_draft_result.user_id, rating_draft_result.result;
你有
開啟rating_draft_result.user_id, rating_draft_result.result = users.id
問題出在您的JOIN ON
子句中。 您需要像這樣更改它
INNER JOIN users ON
rating_draft_result.user_id = users.id
(OR)如果要同時具有兩個條件,請使用AND
運算符,例如
FROM rating_draft_result
INNER JOIN users ON
rating_draft_result.user_id = users.id
AND rating_draft_result.result = users.id
更改整個查詢,如下所示
SELECT COUNT(rating_draft_result.id),
rating_draft_result.user_id,
rating_draft_result.result
FROM rating_draft_result
INNER JOIN users ON
rating_draft_result.user_id = users.id
AND rating_draft_result.result = users.id;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.