好吧,我覺得這個答案是什麼地方,但我不能找到它... (甚至我的標題是壞的)最少的由不同分組 - SQL
短,我想數量最少的組我可以從關聯表
1的一部分做,請記住,這已經是一個5臺的結果(+ 1K線),過濾和分組加盟,我必須在prod服務器上運行許多時間,像香蕉一樣強大......
2日,這是一個圖片,你我的問題
一些查詢後一個假的情況下,我有了這個數據結果:
+--------------------+
|id_course|id_teacher|
+--------------------+
| 6 | 1 |
| 6 | 4 |
| 6 | 14 |
| 33 | 1 |
| 33 | 4 |
| 34 | 1 |
| 34 | 4 |
| 34 | 10 |
+--------------------+
正如你所看到的,我已經有3門課程,女巫最多由3名教師授課。我需要參加每門課程的其中一門課,但我希望儘可能少用不同的老師(我很害羞......)。
我的第一個查詢
應該回答:什麼是老師,我需要覆蓋每一個獨特的課程數量最少?
有了這些數據,這是一個1
,導致教師1或教師4爲這3個課程製作課程。
第二個查詢
現在,我已經獲得這些課程,我想去另外兩個療程後,32
和50
,這個時間表:
+--------------------+
|id_course|id_teacher|
+--------------------+
| 32 | 1 |
| 32 | 12 |
| 50 | 12 |
+--------------------+
我問題是:對於id_course N,我需要多一個老師嗎?
我要檢查的過程中當然,如此「檢查過程32」,不需要檢查許多在同一時間
我認爲最好的方法是計算一個列表內連接第一個查詢的等級最低的老師,所以我們的數據只有兩個:Teacher(1, 4)
。
對於課程32
,Teacher2不這樣做,但是因爲Teacher1做Courses(6, 33, 34, 32)
我不必再找另一個老師。
對於課程50
,唯一的老師是老師12,所以我不會在我選擇的老師中找到一個匹配,而且我將不得不再獲得一個(所以這兩個數據總共有兩個) )
這裏是一個基礎SQLFiddle sqlfiddle http://sqlfiddle.com/images/fiddle_transparent_small.png
最好的問候,Blag
[this](http://sqlfiddle.com/#!9/9090a/6)return me'4' and not the '我想要;我需要爲每門課程聘請一位老師,並且試着找出是否有一位老師教授我需要的每門課程 – Blag
這就像解決**「我需要覆蓋每門獨特課程的最少數量的老師是什麼?」* * – Blag
有趣我現在得到它......仍在考慮。 – xQbert