2013-12-14 4 views
1

У меня есть две таблицы, одна содержит первичный ключ «id» и «web_id», который содержит varchar URL-адреса, таблица называется «SG».Требуется помощь SQL Query - Присоединение информации

В другой таблице есть первичный ключ «id», «web_id», «votetype» и «userID». Таблица называется «Голоса».

Я хочу, чтобы в конечном итоге с таблицей, когда я ищу «www.facebook.com»

я получаю одну таблицу строки с этим:

имен столбцов: web_id, любит, не любит

Где любит есть votetype = 0, и антипатия является votetype = 1.

Вот что у меня есть, однако я неопытный с присоединяется и сообщения об ошибках не дают никакой информации.

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

Почему вы добавить ключ 'id' в' sg' таблицы, если вы в конечном итоге с помощью 'web_id' как внешний ключ в таблице «голосов»? –

ответ

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 
+1

Это сделало трюк, спасибо миллион! Я не знал, что вы можете использовать функцию SUM вот так! – AndrewB

+0

@AndrewB я рад, что это помогает вам –

Смежные вопросы