2013-06-12 4 views
-3

У нас есть две таблицы.sql запрос относительно избранных авторов каждого пользователя

1. information 

title body  name 

title1 body1 author1 
title2 body2 author1  
title1 body1 author2 
title1 body1 author3 

2. interactions 

name  favorited user_favorited_by 

author1  yes   user1 
author2  yes   user1 
author1  yes   user2 
author1  no   user3 

Вопрос: кто для каждого пользователя является любимым автором или авторами?

Запрос должен дать нам следующий ответ на примере:

user1 author1 
user1 author2 
user2 author1 

Любая помощь приветствуется.

+0

Две точки минус? Зачем? Вы могли бы написать комментарий здесь. Я думаю, вопрос ясен! – stefanosn

ответ

1

Вот это объединение, которое работает:

SELECT DISTINCT user_favorited_by, a.name 
    FROM information a 
    JOIN interactions b 
    ON a.name = b.name 
WHERE favorited = 'yes' 

Поскольку у вас есть только 'имя' в join, вам нужно DISTINCT, или вы можете выбрать GROUP BY по выбранным полям, чтобы удалить повторяющиеся строки из вашего вывода.

А вот демо: SQL Fiddle

0

Могу ли я предложить:

select user_favorited_by, author from information a 
inner join interaction b on a.name = b.name 
where b.favorited = 'yes' 
0

Я думаю, что должно работать

SELECT DISTINCT user_favorited_by, 
       a.name 
    FROM information a, 
     interactions b 
WHERE a.name = b.name 
    AND favorited = 'yes' 
+1

Хотя это, безусловно, работает, я бы не стал поощрять людей к использованию старых стилей. –

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