关于每个用户的收藏作者的SQL查询

时间:2013-06-12 15:32:26

标签: mysql 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

任何帮助表示感谢。

3 个答案:

答案 0 :(得分:1)

这是一个有效的JOIN:

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

由于你只有'name'才能加入,你需要DISTINCT,或者你可以选择GROUP BY选择字段来删除输出中的重复行。

这是一个演示:SQL Fiddle

答案 1 :(得分:0)

我可以建议:

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

答案 2 :(得分:0)

我认为以下内容应该有效

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