我有两张桌子。
这是我的第一个查询
select teacher_id from teacher a , stats s where s.type=25 and a.teacher_id=s.teacherP_id order by s.count desc;
我的第二个问题
select *from teacher where teacher_id IN (select teacherP_id from stats where type = 25);
在我的java类中,我正在使用hibernate
如果我使用第一个查询,我可以拿教师表因为我只是重新调整teacher_id如果我使用select *我从统计数据和教师获取所有字段。
如果我使用第二个查询,我不能按计数字段对它们进行排序。
如何通过一个查询获得教师的所有字段并按统计数字字段排序。
答案 0 :(得分:2)
如果可以,请尝试以下查询:
select a.* from teacher a , stats s where s.type=25 and a.teacher_id=s.teacherP_id order by s.count desc;
答案 1 :(得分:1)
首先,您应该学习明确的join
语法。如果您正在学习SQL,那么这是一个简单的规则:永远不要在from
子句中使用逗号。
其次,您可以使用<table alias>.*
从表格中选择所有列。以下是您想要的查询:
select t.*
from teacher t join
stats s
on t.teach_id = s.teacherP_id
where s.type = 25
order by s.count desc;