/*Table structure for table `tc` */DROPTABLEIFEXISTS`tc`;CREATETABLE`tc`(`id`varchar(255)NOTNULL,`time`int(4)DEFAULTNULL,`text`varchar(255)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;/*Data for the table `tc` */insertinto`tc`(`id`,`time`,`text`)values('001',1,'wsl好事可爱'),('002',2,'汪苏泷唱歌很好听'),('003',3,'汪苏泷真帅'),('004',1,'wsl小可爱'),('005',1,'哈哈哈');/*Table structure for table `tcr` */DROPTABLEIFEXISTS`tcr`;CREATETABLE`tcr`(`id`int(4)NOTNULL,`trends_content_id`varchar(255)DEFAULTNULL,`user_id`varchar(255)DEFAULTNULL,`isread`varchar(255)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;/*Data for the table `tcr` */insertinto`tcr`(`id`,`trends_content_id`,`user_id`,`isread`)values(1,'001','u1','是'),(2,'002','u1','否'),(3,'001','u1','是'),(4,'003','u1','否'),(5,'002','u2','是');/*Table structure for table `tcu` */DROPTABLEIFEXISTS`tcu`;CREATETABLE`tcu`(`id`varchar(255)NOTNULL,`ontop`int(4)DEFAULTNULL,`user_id`varchar(255)DEFAULTNULL,`trends_content_id`varchar(255)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;insertinto`tcu`(`id`,`ontop`,`user_id`,`trends_content_id`)values('1',0,'u1','002'),('2',1,'u1','001'),('3',1,'u1','003'),('4',1,'u2','003'),('5',1,'u2','001'),('6',1,'u1','004');
去重和加上条件
SELECT t1.id,t1.text,t2.ontop,t3.isread,t2.user_id FROM(SELECT*FROM tc
)AS t1
LEFTJOIN(SELECT*FROM tcu WHERE tcu.`user_id`='u1'GROUPBY tcu.`trends_content_id`)AS t2
ON t1.id = t2.trends_content_id -- AND t2.ontop != 0)LEFTJOIN(SELECT*FROM tcr WHERE tcr.`user_id`='u1'GROUPBY tcr.`trends_content_id`)AS t3
ON t1.id = t3.trends_content_id
WHERE t1.`time`<3AND t1.textLIKE'%汪苏泷%'-- 谓语查询条件OR t2.ontop=1ORDERBY t2.ontop DESC