2012-11-05 27 views
0

我有這樣的SQL查詢,這是我必須提供身份證(在這個例子中它`S 100)工作MySQL查詢使用環路ID

SELECT * FROM students_subjects WHERE student_id 
NOT IN 
(SELECT student_id FROM students_info WHERE class_id=(SELECT class_id FROM groups WHERE group_id=(SELECT group_id FROM teacher_groups_subjects WHERE t_g_s_id=**100**))) 

我想選擇從表teacher_groups_subjects所有行刪除結果並運行上面的查詢每個ID(t_g_s_id)

任何人?

+1

使用prodecure或功能循環。 http://stackoverflow.com/questions/5125096/for-loop-in-mysql – Vucko

+0

我可以做一個查詢,而不表或過程 – user1799573

+0

你嘗試WHERE t_g_s_id =(從表名SELECT ID)? – Vucko

回答

0

可能是這樣的: -

SELECT * 
FROM students_subjects a 
LEFT OUTER JOIN students_info b ON a.student_id = b.student_id 
LEFT OUTER JOIN groups c ON b.class_id = c.group_id 
LEFT OUTER JOIN teacher_groups_subjects d ON c.group_id = d.group_id 
WHERE b.student_id IS NULL 
+0

謝謝,這裏的student_id不存在。 我想找到哪裏group_id用於一個學生的class_id是不同於在表組使用的那個..你能幫助我嗎?! – user1799573

+0

有點困惑你想要什麼。雖然你可以做一個與上面類似的連接,但是改變WHERE子句來檢查一個空的c.group_id,我不確定這在邏輯上給你帶來了什麼有用的東西(超出了分配給一個類的學生列表不存在) – Kickstart

+0

它很複雜.. 在students_info我有class_id和student_id。 在組中我有class_id和group_id。 在teacher_groups_subjects中,我有class_id,group_id和學生ID。 ,,,, 我想找到學生,他們在表students_info中的class_id不等於表teacher_groups_subjects ?!中的class_id。 – user1799573