我有两个表,一个包含主键“id”和“web_id”,它包含一个url的varchar,表名为“SG”。
在另一个表中有一个主键“id”,“web_id”,“votetype”和“userID”。表名为“投票”。
当我搜索“www.facebook.com”
时,我希望得到一张桌子我得到一个单行表:
列名:web_id,喜欢,不喜欢
喜欢votetype = 0的地方,不喜欢的是votetype = 1。
这是我所拥有的,但我对Joins没有经验,并且错误消息不提供任何信息。
SELECT web_id
FROM `SG`
WHERE web_id="www.facebook.com"
LEFT OUTER JOIN
(SELECT COUNT(*) AS likes
FROM `Votes` WHERE web_id="www.facebook.com" AND votetype=0
LEFT OUTER JOIN
(SELECT COUNT(*) AS dislikes
FROM `Votes`
WHERE web_id="www.facebook.com" AND votetype=1
)
)
任何纠正我的SQL的帮助将不胜感激! :)
答案 0 :(得分:1)
我猜你需要单个web_id
的喜欢和不喜欢的数量SELECT s.web_id ,SUM(v.votetype = 0) AS `likes` ,SUM(v.votetype = 1) AS `dislikes`
FROM `SG` s
INNER JOIN Votes v ON (s.web_id =v.web_id )
WHERE s.web_id='www.facebook.com'
GROUP BY v.web_id