以下语句查询很慢, 结果也只有几百条, 去掉条件where ID in (select T_UserID from Topic_Answer)就快了, 有什么办法,请帮忙?
select count(*) from Trainer_User where ID in (select T_UserID from Topic_Answer) Order By id Desc
select count(*) from Trainer_User where ID in (select T_UserID from Topic_Answer) Order By id Desc
Order By ID Descin()我想Topic_Answer很多行数据表。这样慢就不奇怪了。
且一般情况下不建议SQL语句 where
后面接算法表达式 。。执行起来会慢很多
通过这个语句查询出来的是两个表的, 我现在只想查询出来第一个表的,该怎么查询
这条语句会把只要符合Trainer_User.id = Topic_Answer.T_UserID 的,本来Trainer_User 只有一条记录,但是Topic_Answer有比较多的记录, 因此, 会把右边有多少条记录, 就显示多少条记录本来我想,如果Trainer_User 中只有一条记录, 那就显示一次就可以了
select * from Trainer_User as a where exists( select 1 from Topic_Answer as b where a.id = b.T_UserID)
select a.* from Trainer_User as a left join Topic_Answer on a.id = Topic_Answer.T_UserID and Topic_Answer.T_UserID is not null