【问题标题】:How to fetch a particular record from three tables如何从三个表中获取特定记录
【发布时间】:2011-01-06 18:00:26
【问题描述】:

表名 :: 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. b_id

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

我希望输出为

f_Name (faculty name), Sub_name (Subject Name) , and remark (Remark ) when I give (faculty id) f_id

谁能帮我解决这个问题。

【问题讨论】:

    标签: mysql phpmyadmin


    【解决方案1】:

    使用对象

    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
    

    【讨论】:

      【解决方案2】:

      嘿嘿,我猜是 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
      

      【讨论】:

        【解决方案3】:

        select fm.f_name, sm.sub_name, remark from Faculty_master fm left 在 fm.f_id=sm.f_id 上加入 sub_master sm 离开加入 feedback_master fbm on sm.sub_id = fbm.sub_id 其中 fm.f_id= 123

        【讨论】:

          【解决方案4】:

          您可以分阶段构建查询。第一件事是你在关注一个反馈评论列表,所以从这个简单的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 表是链接在一起的,假设每个remark 都有一个subject ID 和一个faculty 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
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2017-12-22
            • 1970-01-01
            • 2013-12-17
            • 1970-01-01
            • 2011-03-08
            • 2021-08-30
            • 1970-01-01
            相关资源
            最近更新 更多