2016-07-25 60 views
1

查询实在太烂了整整一天:(..我得到一个问题,同时获取查询结果SQL连接查询,以检查登录的用户喜欢或不

情景:我有其中第一个表中的两个表我保存了用户活动的详细信息,第二个表用于保存其他用户输入的所有活动的用户的喜欢功能。

我需要的是获取类似值是否当前登录用户已经喜欢活动。某种布尔值

表存储活动

enter image description here

表来存储像数

enter image description here

,我需要检查什么是独特的活动明智的登录用户一样检查。 尝试查询:

SELECT at.id, 
CASE WHEN lk.status =1 and lk.user_id = 6 
    THEN 1 
    ELSE 0 
END AS l 
FROM activity_transactions at 
LEFT JOIN likes lk ON at.id = lk.activity_transaction_id 

输出我与duplicates-

enter image description here

家伙的任何解决方案获得? 问题是,我得到重复的行。我需要检查1,如果用户喜欢其他0活动行。

+0

因为“like”表包含重复值,所以放置区别。或者使用内部连接 –

+0

我试图内部连接甚至截然不同,但没有得到正确的输出。:( –

+1

尝试使用此查询“SELECT at.id,CASE WHEN lk.status = 1 and lk.user_id = 6 THEN 1 ELSE 0 END AS l FROM LEFT JOIN的activity_transactions喜欢lk ON at.id = lk.activity_transaction_id group by at.id,l“。对于我来说,上面的输入表 –

回答

2

请尝试此查询“SELECT at.id,CASE WHEN lk.status = 1 and lk.user_id = 6 THEN 1 ELSE 0 END AS l FROM activity_transactions at LEFT JOIN likes lk ON at.id = lk.activity_transaction_id由at.id,l分组“。它正在为我工​​作以上输入表

标记此问题以便标记为已解决。