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,也就是我的id
select 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为关注类型
求教,不知道该怎么写了
Helenr
相关分类