0

表名 :: Feedback_master

字段 1. feed_id 2. roll_id 3. batch_id 4. sem_id(学期 ID) 5.f_id(教师 ID) 6. sub_id(主题 ID) 7. 备注。8. b_id

表名 :: subject_master

字段

  1. sub_id(主题 ID)
  2. sub_name(主题名称0
  3. f_id(教师 ID)

表名::faculty_master

字段

  1. f_id(教师编号)
  2. f_name(学院名称)
  3. l_name(学院名称)
  4. 出价

这是三张桌子。现在我想从这三个表中获取详细信息。

我希望输出为

f_Name (faculty name), Sub_name (Subject Name) 和 remark (Remark) 当我给 (faculty id) f_id

有人可以帮我解决这个问题吗?

4

4 回答 4

0

您可以分阶段构建查询。第一件事是您需要一个反馈评论列表,所以从这个简单的选择查询开始:

SELECT * FROM Feedback_master

这列出了来自各地的所有反馈,但您希望将其限制为仅对特定教师的反馈,所以让我们添加一个Where 子句

SELECT * FROM Feedback_master
  WHERE Feedback_master.f_id = @f_id

现在我们得到了正确的记录列表,但是字段列表是错误的。您需要在 Feedback_master 表中不存在的教师姓名和学科名称;subject_master 和faculty_master 表是链接的,假设每条评论都有一个主题ID和一个教师ID,我们可以使用一个简单的内部连接来链接这些表:

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
于 2010-01-19T13:15:11.437 回答
0

使用对象

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
于 2010-01-19T10:19:59.893 回答
0

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
于 2010-01-19T10:20:29.840 回答
0

select fm.f_name, sm.sub_name, remark from Faculty_master fm left join sub_master sm on fm.f_id=sm.f_id left join feedback_master fbm on sm.sub_id = fbm.sub_id where fm.f_id= 123

于 2010-01-19T10:25:30.707 回答