2013-02-25 45 views
0

我是数据库的学习者,我想我是问非常基本的问题,请耐心等待。无法将选定的数据分组

我想从表格中获取值列表。值的列表将根据一些标准进行排序。

例子:我有一个名为大学表,我在哪里节约像绳子courseOfferedJAVA,C++,机器人等

我还有一个两列用户表称为primarySubjectsecondarySubject

我的第一个取逻辑,根据primarySubject,大学表的行值必须是第一优先级列表中的,然后根据secondarySubject,大学表的行值必须是第二优先级列表中的和其余值将最后附加,这与主要主题次要主题无关。

到目前为止,我试了一下:

SELECT * 
FROM test.college 
WHERE Courses_Offered LIKE CONCAT('%',RTRIM((SELECT 
          Primary_Subject 
         FROM test.user 
         WHERE Email = '[email protected]')),'%') 
    OR Courses_Offered LIKE CONCAT('%',RTRIM((SELECT 
         Secondary_Subject 
          FROM test.user 
          WHERE Email = '[email protected]')),'%') 
    OR LOWER(Location)IN(SELECT 
       LOWER(Location) 
       FROM test.user 
       WHERE Email = '[email protected]') 

上面的查询获取所有数据,但并不像我上面想,它取为行被保存在表中,现在我想是一种围绕分组的每一个取在上面的查询中,我应该怎么做?

+0

使用顺序通过使用由组和秩序,并通过该组 – 2013-02-25 06:39:16

回答

1

这样你就可以通过

SELECT * 
FROM test.college 
WHERE Courses_Offered LIKE CONCAT('%',RTRIM((SELECT Primary_Subject FROM test.user WHERE Email = '[email protected]')),'%') 
    OR Courses_Offered LIKE CONCAT('%',RTRIM((SELECT Secondary_Subject FROM test.user WHERE Email = '[email protected]')),'%') 
    OR LOWER(Location)IN(SELECT LOWER(Location) FROM test.user WHERE Email = '[email protected]') 
GROUP by college.column_name 
ORDER BY college.first_column_name ASC , college.second_column_name DESC