2013-02-25 20 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