2014-01-13 33 views
-3

我需要從表groups中取Ngr列在兩個以上的科目中學生的分數差(= 2),這些學生的數量是一半從組:sql與逗號分隔的字段值中的sublection加入

SELECT Ngr 
    FROM subject 
     LEFT JOIN groups ON (subject.Ngr = groups.Ngr) 
    WHERE.... 

,在這裏我不能繼續

感謝你的未來的建議!

組:

| Ngr | Name_of_speciality | 
---------------------------- 
| 1 | Physics   | 
.......................... 

主題:

| Ngr | Name | marks      | 
------------------------------------------- 
| 1 | Physics|2,2,3,3,5,5,5,4,3,2,2,5,2,4| 
........................................... 

祝你好運!

+3

'描述主題;'和'DESCRIBE組;'請。另外,請定義'學生的分數不好' – Sebas

+0

@Sebas,done ... – user3189117

+1

你將不得不使用LIKE;但是重新設計你的桌子讓每個標記成爲一個單獨的行不是更好嗎? – Luceos

回答

0

繼續評論;

你將不得不使用LIKE;但是重新設計你的桌子讓每個標記成爲一個單獨的行不是更好嗎?

@Luceos,我該怎麼做?

它取決於您的表格格式;你在桌子上覆制物理,爲什麼?你有一個叫做物理學的小組,並且叫物理學,應該是像物理1這樣的考試名稱嗎?然後,如果你不想接痕的學生,你可以使主ID自動遞增列:

| id | Ngr | Name | mark      | 
------------------------------------------- 
| 1 | 1 | Physics|2       | 
------------------------------------------- 
| 2 | 1 | Physics|5       | 
........................................... 

諸如此類。這種方式,您可以通過標記= 2選擇或標記< = 2,在得到結果回來加入。