Как извлечь конкретную запись из трех таблиц - PullRequest
0 голосов
/ 19 января 2010

Имя таблицы :: Feedback_master

Поля 1. feed_id 2. roll_id 3. batch_id 4. sem_id (идентификатор семестра) 5.f_id (идентификатор факультета) 6. sub_id (идентификатор субъекта) 7. примечание. 8. b_id

Имя таблицы :: subject_master

Поля

  1. sub_id (идентификатор субъекта)
  2. sub_name (имя субъекта 0
  3. f_id (идентификатор факультета)

Название таблицы :: faculty_master

Поля

  1. f_id (Faculty Id)
  2. f_name (название факультета)
  3. l_name (название факультета)
  4. b_id

Это три таблицы. Теперь я хочу получить подробности из этих трех таблиц.

Я хочу вывод как

f_Name (имя факультета), Sub_name (имя субъекта) и примечание (Remark), когда я даю (идентификатор факультета) f_id

Может кто-нибудь помочь мне преодолеть эту проблему.

Ответы [ 4 ]

0 голосов
/ 19 января 2010

Вы можете построить запрос поэтапно.Во-первых, вам нужен список замечаний обратной связи, поэтому начните с простого запроса select :

SELECT * FROM Feedback_master

Это список всех отзывов со всех концов, но вы хотитечтобы ограничить его только обратной связью по конкретному факультету, давайте добавим Где предложение :

SELECT * FROM Feedback_master
  WHERE Feedback_master.f_id = @f_id

Теперь у нас есть правильный список записей, но список полейнеправильно.Вы хотите, чтобы название факультета и название предмета отсутствовали в таблице Feedback_master;таблицы subject_master и faculty_master связаны между собой, и, предполагая, что каждое замечание имеет идентификатор субъекта и идентификатор факультета, мы можем использовать простое внутреннее объединение , чтобы связать таблицы:

SELECT * FROM Feedback_master
  INNER JOIN subject_master ON Feedback_master.sub_id = subject_master.sub_id
  INNER JOIN faculty_master ON Feedback_master.f_id = faculty_master.f_id
  WHERE Feedback_master.f_id = @f_id

Теперь этовытаскивая все поля из всех трех таблиц;сюда входят все необходимые нам поля, поэтому теперь мы можем просто назвать их в предложении Select:

SELECT
  faculty_master.f_name, subject_master.sub_name, Feeback_master.remark
FROM Feedback_master
  INNER JOIN subject_master ON Feedback_master.sub_id = subject_master.sub_id
  INNER JOIN faculty_master ON Feedback_master.f_id = faculty_master.f_id
WHERE Feedback_master.f_id = @f_id
0 голосов
/ 19 января 2010

heu, MySQL, я полагаю?

SELECT f_name, sub_name, remark 
FROM faculty_master
LEFT JOIN subject_master USING(f_id)
LEFT JOIN Feedback_master USING(f_id)
WHERE f_id = the_id_you_want
0 голосов
/ 19 января 2010

выберите имя fm.f_name, имя sm.sub_, комментарий от faculty_master fm left присоединиться к sub_master sm в fm.f_id = sm.f_id оставил присоединиться к feedback_master fbm on sm.sub_id = fbm.sub_id где fm.f_id = 123

0 голосов
/ 19 января 2010

Использование объектов

Select T1.f_name, T2.sub_name, T3.remark from faculty_master as T1, 
subject_master as T2, Feedback_master as T3 where T1.f_id = 'your faculty_id'
and T1.f_id = T3.f_id and T2.sub_id = T3.sub_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...