我有一個news
表如下:優化查詢的問題
CREATE TABLE `news` (
`title` varchar(255) NOT NULL,
`hash` char(40) NOT NULL,
PRIMARY KEY (`hash`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
而且,另一個votes
表如下:
CREATE TABLE `votes` (
`hash` char(40) NOT NULL,
`user_id` varchar(255) NOT NULL,
`vote_type` enum('up','down') DEFAULT NULL,
PRIMARY KEY (`hash`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
現在,我想是這樣的,當用戶登錄IN-
this_is_a_title hash_12312312 NULL
this_is_a_title hash_12312313了
this_is_a_title hash_12312314 NULL
this_is_a_title hash_12312315下來
您能否提供這個最佳單查詢?
我想我的問題並不清楚。對不起。 通過NULL字段我的意思是一個新的沒有任何投票從這個用戶或任何人流失。
我的版本是 -
SELECT news.*, votes.vote_type
FROM news
LEFT OUTER JOIN votes
ON votes.`hash` = news.`hash`
AND votes.`user_id` = #
澄清您的問題 – zerkms 2011-05-11 01:53:27
您是否想查看所有新聞報道以及用戶是否對他們投了票? – Novikov 2011-05-11 02:01:38
@Novikov,是NULL字段我的意思是一個新的沒有任何投票從這個用戶或任何人流失。 – Rifat 2011-05-11 03:14:02