select t.*from talk twhere t.user_id = 2Unionselect t.*from talk t, user_contact cwhere c.user_id = 2 and c.contact_type = 1 and c.be_user_id = t.user_id这么写可以但是不想这么写 ,想用 内连接或者左连接存在一种情况就是这个user在user_contact 表里面没数据,代表他没关注任何人user_id = 1 是用户的id,也就是我的idselect t.*
from talk t left join user_contact c on c.user_id = t.user_id
where t.user_id = 1 or (c.user_id = 1 and c.be_user_id = t.user_id and c.contact_type = 1)搞不明白哪里有错啊,为啥就会有重复数据呢我这样写查询出来有重复数据user_contact是用户关系表talk 是帖子表帖子表talk有存发布帖子的用户的user_id然后用户关系表user_contact 存了 user_id,be_user_id是被关注的用户的id,contact_typ_type是用户关系类型,1为关注类型求教,不知道该怎么写了
1 回答
Helenr
TA贡献1780条经验 获得超4个赞
select * from talk where user_id=1 or user_id in (select be_user_id from user_contact where user_id=1 and contact_type = 1)
添加回答
举报
0/150
提交
取消