我们有两张桌子。
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 :(得分: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'