如何从三个表中获取特定记录

时间:2010-01-19 10:07:15

标签: mysql phpmyadmin

表名:: Feedback_master

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

表名:: subject_master

字段

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

    字段

    1. f_id(教师ID)
    2. f_name(教职员名称)
    3. l_name(教职员名称)
    4. B_ID
    5. 这是三张桌子。现在我想从这三个表中获取细节。

      我希望输出为

      当我给(教师ID)f_id

      时,

      f_Name(教员姓名),Sub_name(主题名称)和备注(备注)

      有些人可以帮我解决这个问题。

4 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

答案 2 :(得分:0)

  

从faculty_master fm中选择fm.f_name,sm.sub_name,remark   在fm.f_id = sm.f_id上加入sub_master sm   左边加入feedback_master fbm   sm.sub_id = fbm.sub_id   其中fm.f_id = 123

答案 3 :(得分:0)

您可以分阶段构建查询。第一件事是你正在阅读反馈评论列表,所以从这个简单的select query开始:

SELECT * FROM Feedback_master

列出了所有来自各地的反馈意见,但是您希望将其限制为仅针对特定教师的反馈,所以让我们添加Where clause

SELECT * FROM Feedback_master
  WHERE Feedback_master.f_id = @f_id

现在我们有了正确的记录列表,但是字段列表是错误的。您需要教师姓名和主题名称,而这些名称和主题名称不在Feedback_master表中; subject_master和faculty_master表是相互关联的,假设每个评论都有主题ID和教师ID,我们可以使用简单的inner join链接表格:

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