2014-09-25 27 views
-1

我有一個表,其中包含student_id,course_idresult。該表結構如下Mysql如何從一個表中獲得一個字段沒有特定值的所有行..?

enter image description here

我需要得到course_id其結果爲0,另一個條件是,結果可能不是1該課程。

在該圖像中,course_id 633同時具有result 0和1.因此,特定course_id不得從該表中獲取。

問候, 約翰

+0

什麼你的觀點呢?你的要求是什麼? – 2014-09-25 06:34:30

+0

你需要什麼?是否這個條件你尋找「從table_name where result = 0和結果!= 1選擇course_id」 – Abhinav 2014-09-25 06:36:07

回答

1

我希望這是你在找什麼:

SELECT student_id,course_id,SUM(CASE WHEN result=1 THEN 1 ELSE 0 END) as 0Count 
FROM TableName 
GROUP BY student_id,course_id 
HAVING 0Count=0 

SQL Fiddle

說明:

查詢將返回帶有result=0的學生,並且該課程沒有result=1

樣本輸出:

student_id course_id result 
3061   663   0 
3061   663   1 
3062   664   1 
3063   665   0 

結果將是:

STUDENT_ID COURSE_ID  0COUNT 
----------------------------------- 
3063   664    0 
0
SELECT course_id FROM table_name WHERE result <> 1 

編輯:未使用選擇在那裏踢

0

我明白了。我認爲你正在尋找這個代碼

SELECT course_id FROM table_name WHERE result = 0 AND result NOT LIKE "%1%"; 

讓我知道它是如何爲你工作的。

0

嘗試此查詢:

SELECT DISTINCT t1.course_id 
FROM table_name t1 
WHERE t1.result = 0 
    AND NOT EXISTS (
    SELECT 1 
    FROM table_name t2 
    WHERE t2.course_id = t1.course_id 
    AND t2.result = 1); 
0

這裏試試這個

SELECT * 
FROM TABLE_NAME 
WHERE course_id NOT IN 
    (SELECT course_id 
    FROM TABLE_NAME 
    WHERE RESULT=0 
     AND course_id IN 
     (SELECT course_id 
      FROM TABLE_NAME 
      WHERE RESULT=1)) 
相關問題