2017-03-14 78 views
-1

表學生
MySQL的多行選擇多IDS值

 
-------------------------------------------------------------- 
- student_id - student_name - student_image - student_course - 
-------------------------------------------------------------- 
-   1 - Ana   - avatar.jpg -   10,9 - 
-   2 - David  - avatar.jpg -   11,9,8 - 
-   3 - Jasmine  - avatar.jpg -   8,9,7 - 
-------------------------------------------------------------- 

表課程

 
------------------------------------------- 
- course_id - course_title - course_image - 
------------------------------------------- 
-   7 - Photoshop - image.jpg - 
-   8 - Cinema 4D - image.jpg - 
-   9 - Idesign  - image.jpg - 
-  10 - Illustrator - image.jpg - 
------------------------------------------- 

我想單獨的值id(從表學生/ student_course)在多行,而不象重複這個:

 
------------------------------------------------ 
- student_course - course_title - course_image - 
------------------------------------------------ 
-    7 - Photoshop - image.jpg - 
-    8 - Cinema 4D - image.jpg - 
-    9 - Idesign  - image.jpg - 
-    10 - Illustrator - image.jpg - 
------------------------------------------------ 

SQL:

function selected_courses($connect){ 
$sentence = $connect->prepare(''); 
$sentence->execute(array()); 
return $sentence->fetchAll(); 
} 
+0

調整你的數據庫。 '11,9,8'應該在另一個表中有自己的行。 – Xorifelse

+0

'student_course'應該是真正的自己的桌子,每個學生的課程都有一行student_id和course_id。綜合這樣的課程被認爲是不好的做法,並且確實意味着任何查詢都會相對錶現不佳,因爲您不能使用索引來加入這些表格,並且需要掃描每個課程行,與學生相比獲得課程數據學生或找到所有具有特定課程的學生。我會建議在太遲之前重構它。 –

+0

@JonathanKuhn怎麼樣?你有什麼例子嗎?我是這個 – bdroid

回答

0

正如其他人所提出的意見這是一個壞主意,包含一列到不同的表中的多個標識引用。

您想要第三張表格降低複雜度以達到您想要的效果,同時也爲您提供更多的靈活性。

http://sqlfiddle.com/#!9/3ac000/1