首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php中不同类型的不同排序

php中不同类型的不同排序
EN

Stack Overflow用户
提问于 2013-11-27 19:07:28
回答 2查看 76关注 0票数 0

我的表描述如下

代码语言:javascript
复制
**entry_table**

 - serial(int)
 - s_name(varchar)
 - user_id(int)
 - id(int)

**Students_details**

 - id(int)
 - user_id(int)
 - student_name(varchar)
 - adress(varchar)

**User_login**

 - user_id(int)
 - user_name(varchar)
 - password(varchar)
 - alotment(bool)

场景是学生申请多个奖学金。它们的选择存储在entry_table的s_name、user_id和id字段中。

我的下一步是构建一个所有申请某个奖学金的学生的排序列表,例如:“scholarship1”。

此列表还应显示学生的姓名( students_details表的student_name字段)

这些列表将根据系统提供的两种类型的奖学金(优点和需要)进行排序。优秀奖学金的申请者需要使用比率(获得的分数/总分)按降序排序。然而,需要奖学金将按升序缩短,因为它使用比率(家庭收入/否。没有收入的家庭成员)

我尝试使用以下命令连接我的表

代码语言:javascript
复制
  $query = "SELECT *FROM entry_table, students_details 
WHERE entry_table.id=students_details.id
    group by entry.s_id,entry.student_id";

请帮助按类型问题进行排序。此外,上面的查询有助于连接表,但不能达到目的。

提前感谢你

EN

回答 2

Stack Overflow用户

发布于 2013-11-27 19:20:38

代码语言:javascript
复制
select * from entry_table inner join students_details on entry_table.id=students_details.id order by entry.student_id asc;
票数 1
EN

Stack Overflow用户

发布于 2013-11-27 19:32:29

首先,你应该正确地连接表。

代码语言:javascript
复制
$query = "SELECT sd.student_name, et.s_name FROM Student_details AS sd LEFT JOIN 
entry_table AS et ON et.user_id = sd.user_id LEFT JOIN 
user_login AS ul ON ul.user_id = sd.user_id 
WHERE et.s_name = 'merit'
ORDER BY et.s_name DESC 
UNION ALL 
SELECT sd.student_name, et.s_name FROM Student_details AS sd LEFT JOIN 
entry_table AS et ON et.user_id = sd.user_id LEFT JOIN 
user_login AS ul ON ul.user_id = sd.user_id 
WHERE et.s_name = 'need'
ORDER BY et.s_name ASC"

如果你需要一个列表,你不需要分组,只要你不需要任何字段或唯一行的计数。这就是我脑海中的想法,也许是我没有测试过的技巧,但也许会给你一个想法。我看不到表上的ratio字段。

在连接表的位置使用Join会更有意义,并且可以提高查询性能。下次放SQL表代码,会更有用,能给出更好的响应。

对不起,我的英语!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20240807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档