我有一個表,其中包含student_id
,course_id
和result
。該表結構如下Mysql如何從一個表中獲得一個字段沒有特定值的所有行..?
我需要得到course_id
其結果爲0,另一個條件是,結果可能不是1該課程。
在該圖像中,course_id
633同時具有result
0和1.因此,特定course_id
不得從該表中獲取。
問候, 約翰
我有一個表,其中包含student_id
,course_id
和result
。該表結構如下Mysql如何從一個表中獲得一個字段沒有特定值的所有行..?
我需要得到course_id
其結果爲0,另一個條件是,結果可能不是1該課程。
在該圖像中,course_id
633同時具有result
0和1.因此,特定course_id
不得從該表中獲取。
問候, 約翰
我希望這是你在找什麼:
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
說明:
查詢將返回帶有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
SELECT course_id FROM table_name WHERE result <> 1
編輯:未使用選擇在那裏踢
我明白了。我認爲你正在尋找這個代碼
SELECT course_id FROM table_name WHERE result = 0 AND result NOT LIKE "%1%";
讓我知道它是如何爲你工作的。
嘗試此查詢:
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);
這裏試試這個
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))
什麼你的觀點呢?你的要求是什麼? – 2014-09-25 06:34:30
你需要什麼?是否這個條件你尋找「從table_name where result = 0和結果!= 1選擇course_id」 – Abhinav 2014-09-25 06:36:07