现在有三张表:user_info , user_practype, user_practype_check ;
其中user_info为主表,存的是用户信息,user_practype为类别表,存的是用户选择的类别,一个用户可以选多个类别,所以与user_info是多对一的关系,user_practype_check是类别评分表,存的是该用户的指定类别的评分情况,如果A用户的a类别没有评分,则该表中没有数据。
三个表通过user_id外键连接;我现在想查出哪些用户的哪些类别没有被打分,请问该咋写?不知道我说明白没有。。。。
-- 三表做左连接后,没有被关联上的就是没有被打分的。
select * from user_info i
left join user_practype p on i.user_id=p.user_id
left join user_practype_check c on i.user_id=c.user_id
where c.user_id is null;
说一下思路,不知道对不对:user_info为主表left join其他俩个表 ,因为没有数据,所以where直接填写评分字段is null 去查询
起码给一个简单的表结构出来吧。以下是我根据你的描述理解的,第一张表没用到。
我重新检查了一下各表,发现有一个关联表没有加索引,加上立马零点几秒了,问题解决了!!!!!感谢楼上几位的热心回答!!!!