选择In query如何在where子句oracle中排序

时间:2014-12-15 11:10:55

标签: sql oracle hibernate

我有两张桌子。

这是我的第一个查询

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 *我从统计数据和教师获取所有字段。

如果我使用第二个查询,我不能按计数字段对它们进行排序。

如何通过一个查询获得教师的所有字段并按统计数字字段排序。

2 个答案:

答案 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;