我的表格描述如下
**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字段中。
我的下一步是建立一份申请特定奖学金的所有学生的排序列表,例如:"奖学金1"。
此列表还应显示学生的姓名(students_details表的student_name字段)
列表将根据系统提供的两种奖学金(优点和需求)进行分类。优点奖学金的申请人需要使用比率(获得的商标/总商标)按降序排序。但是,由于使用比率(家庭收入/非收入家庭成员人数),需要奖学金按升序缩短
我尝试使用
加入我的桌子 $query = "SELECT *FROM entry_table, students_details
WHERE entry_table.id=students_details.id
group by entry.s_id,entry.student_id";
请按类型问题帮助排序。此外,上述查询有助于加入表格,但无法达到目的。
提前感谢你
答案 0 :(得分:1)
select * from entry_table inner join students_details on entry_table.id=students_details.id order by entry.student_id asc;
答案 1 :(得分:0)
首先应该正确连接表格。
$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"
如果您需要一个列表,则不需要分组,只要您不需要任何字段或唯一行上的计数。 这就是我的头脑,也许我没有测试它的技巧,但也许给你一个想法。 我无法在你的桌子上看到比率字段。
使用Join代替连接表的位置,更有意义并提高查询性能。 下一次,放入SQL表代码,对于给出更好的响应更有用。
抱歉我的英文!!!