我要用sql查询出来,我所发布的帖子和我关注的用户发布的帖子,这个sql该怎么写啊?

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为关注类型

求教,不知道该怎么写了


繁星点点滴滴
浏览 703回答 1
1回答

Helenr

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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL