2013-05-08 2 views
-2

Привет У меня есть одна база данных со следующими 3 таблицы:Что я могу использовать?

Classroom /// 
Student /// 
ClassroomToStudent 

Студент может иметь несколько классных комнат классе может иметь несколько студентов

Classroom: 

classroomid (primary key) 
classroomnumber 


Student: 

studentid (primary key) 
studentName 


ClassroomToStudent: 

ctsid (primary key) 
studentid 
classroomid 

студент по имени Джон с идентификатором 1, и класс с номером 10 с идентификатором 1 excist. Таблица ClassroomToStudent имеет ctsid 1, студент 1 и классный номер 1.

Это связано. Итак, теперь, когда таблица ClassroomToStudent имеет 1 строку с 3 значениями, я хочу отобразить имя ученика, совпадающее с именем класса. Итак, у john есть класс с числом 10. Я хочу отобразить это в таблице HTML, но я не знаю, что присоединиться к использованию. Надеюсь, кто-то может с этим справиться.

+2

«что нужно использовать» --- вы провели исследование доступных типов? – zerkms

+0

Да, я думал о внутреннем соединении, но я не был уверен. –

+0

"имя студента, которое соответствует названию класса" Есть класс "Джон"? – feeela

ответ

1
SELECT s.studentName, c.classroomnumber 
FROM Student AS s 
LEFT JOIN ClassroomToStudent AS cs 
ON s.studentid = cs.studentid 
LEFT JOIN Classroom AS c 
ON c.classroomid = cs.classroomid 

Дайте этому попытку, затем цикл запроса (while ($databaseClass->fetch($query)), а вторя результаты, как вы хотите :)

+0

Почему не внутреннее соединение? –

+0

В зависимости от размера базы данных можно использовать как внутренние, так и левые/правые. – ChrisH

+0

@ChrisH: это зависит не от размера db, а от желаемого результата – zerkms

0
SELECT s.studentName 
FROM Classroom AS c 
LEFT JOIN ClasroomToStudent AS cs 
ON c.classroomid = cs.classroomid 
LEFT JOIN Student AS s 
ON cs.studentid = s.studentid 
WHERE c.classroomnumber = x // x is a class number you're looking for 

Этот SQL дает вам имена студентов wchich подключены к классу с номер x

Смежные вопросы