2016-08-01 76 views
-2

我想編寫一個SQL查詢,該查詢應該返回在特定城鎮中教授特定主題的導師總數。SQL查詢沒有給出確切的結果

這是我的查詢

SELECT COUNT(*) 
FROM `tutor_main` tm 
    JOIN `tutor_subjects` ts ON tm.`tutor_id` = ts.`tutor_id` 
    JOIN `sub_subjects` ss ON ss.`subs_id` = ts.`subs_id` 
    JOIN `town` tt ON tm.`town_id` = tt.`town_id` 
    JOIN `subject_level` sl ON sl.`sub_level_id` = ts.`sub_level_id` 
WHERE ts.`subs_id` = 1 
AND tm.`town_id` = 1 

這裏tutor_main作爲存儲town_id爲外鍵的主表。 sub_subjects作爲主題科目表和subject_level表存儲科目級別。同樣,tutor_subjects表存儲tutor_id,subs_id和sub_level_id的鍵。

這是tutor_subjects表的截圖:

enter image description here

注意,town_id所有導師爲1

現在,當我運行查詢,它給了我8輸出。正確的輸出應該是5,因爲有5個導師正在教ID爲1的主題,他們全都來自ID爲1的城鎮。

請幫助。

+0

你打算自己編寫和調試你的任何疑問嗎?或者我們是否應該啓動發票來涵蓋我們正在爲你做的工作。 http://stackoverflow.com/questions/38697095/sql-count-function-not-working – RiggsFolly

回答

1
SELECT COUNT(DISTINCT tm.`tutor_id`) 
FROM `tutor_main` tm 
    JOIN `tutor_subjects` ts ON tm.`tutor_id` = ts.`tutor_id` 
    JOIN `sub_subjects` ss ON ss.`subs_id` = ts.`subs_id` 
    JOIN `town` tt ON tm.`town_id` = tt.`town_id` 
    JOIN `subject_level` sl ON sl.`sub_level_id` = ts.`sub_level_id` 
WHERE ts.`subs_id` = 1 
AND tm.`town_id` = 1 
+0

非常感謝你的答案。 –