-1
我有兩個表格,一個是教師另一個是科目,我需要將這些科目鏈接到教師,這是一個容易的問題,但問題是一個老師可以有多個科目。因此,我需要一種數組,因此,當我用python進行查詢時,它會返回一個數組或者應該說'元組元組的元組'。那麼有人可以幫我解決這個問題嗎?MySQL從一個表中獲得多個項目作爲另一個表的單個字段的輸入
謝謝
我有兩個表格,一個是教師另一個是科目,我需要將這些科目鏈接到教師,這是一個容易的問題,但問題是一個老師可以有多個科目。因此,我需要一種數組,因此,當我用python進行查詢時,它會返回一個數組或者應該說'元組元組的元組'。那麼有人可以幫我解決這個問題嗎?MySQL從一個表中獲得多個項目作爲另一個表的單個字段的輸入
謝謝
數據庫架構是最重要的決定。這似乎有兩種方法,一種是由你或其他人決定製作一個映射表。
對於你的方法: -
id teacher_name Subject
1 XYZ 1,5,6,7
查詢: -
SELECT teacher_name, subject_name
FROM subject s
INNER JOIN teacher t on FIND_IN_SET(s.id,t.subject)
其他是做一個映射表: -
teacher_id subject_id
1 1
1 5
1 7
查詢: -
SELECT teacher_name, subject_name
FROM mapping m
INNER JOIN subject s on m.subject_id = s.id
INNER JOIN teacher t on m.teacher_id = t.id
但是,在主題欄下的條目,將是一個int或我必須將其轉換爲int? –
在主題下的第一個選項條目是逗號分隔的字符串。你確實需要擔心。 FIND_IN_SET自動處理它。它的工作方式與FIND_IN_SET(5,'1,2,5,6,7')相同,它返回1,FIND_IN_SET(9,'1,2,5,6,7')返回false。所以條件結果將被返回。查詢返回像[(TeacherXYZ,Math),(TeacherXYZ,Physics),(TeacherXYZ,computer),(TeacherABC,Math),(TeacherABC,Math),(TeacherABC,Physics)] –
感謝這就是我需要知道的並且直到這一點,在python中分離和比較主題ID和Teaher ID。 –