【问题标题】:How to insert data with this SQL relationship?如何插入具有这种 SQL 关系的数据?
【发布时间】:2018-09-13 04:59:50
【问题描述】:

我正在尝试从教师表行teacher_id 中获取所有记录,到时间表表行teacher_id 中,通过使用右连接,我尝试了此代码,但数据未插入时间表列教师ID。

时间表如下所示:

teacher_id,student_id,class_id;

这是我的查询:

select timetable.* from timetable right join teachers  on 
timetable.teacher_id = teachers.teacher_id;

样本数据:

    Teachers table:
    **teacher_id | teacher_name**
      1 | asa
      2 | saa
      3 | ddd
      4 | eee

时间表:

    **teacher_id | class_id | student_id**

【问题讨论】:

  • 您正在对teachers 表进行自联接。如果这就是你想要的,那么使用alias 来创建表格。如果您想加入两个不同的表,那么这不是您当前在查询中所做的。
  • 这里的时间表是什么???
  • @CoderofCode 我试过这个查询;选择时间表。* 从时间表右加入教师 timetable.teacher_id = Teachers.teacher_id;但数据未插入时间表。
  • @vinaychhabra 时间表是一个空表,它有 3 列,teacher_id、student_id 和 class_id,现在我正在尝试将所有teacher_id 从teacher 表获取到时间表列teacher_id。
  • RIGHT JOIN...大多数人发现 LEFT JOIN 很难理解...main table left join optional dataoptional data right join main table 更容易理解。

标签: php sql


【解决方案1】:

正如您在问题中所说,您希望从教师表行中获取所有记录数据。 因此,如果您想查看教师表中的所有数据,请使用:

select teachers.* from timetable right join teachers on 
timetable.teacher_id = teachers.teacher_id;

在你说的另一部分,你看不到时间表中插入的任何数据,如果你想看到时间表中的行,请使用它:

select timetable.* from timetable right join teachers  on 
    timetable.teacher_id = teachers.teacher_id;

如果你想看到两者都使用它:

select timetable.*,teachers.* from timetable right join teachers  on 
    timetable.teacher_id = teachers.teacher_id;

【讨论】:

  • 谢谢,我尝试了你的第一个代码:从时间表中选择时间表。* 右加入教师 timetable.teacher_id = Teachers.teacher_id;并收到此错误,“#1064 - 您的 SQL 语法有错误;请查看与您的 MariaDB 服务器版本相对应的手册,以获取正确的语法,以便在 'on teacher timetable.teacher_id = teacher.teacher_id LIMIT 0, 25' 附近使用在第 1 行"
  • 谢谢你,它成功了,但是我在时间表表中有三列,teacher_id、class_id 和subjects_id,我在所有其他表中都有虚拟数据,但是当我尝试为teacher_id 运行你的命令时,它执行成功,但所有值为空,时间表中没有插入数据。
【解决方案2】:

试试下面:你写了两次同一张表,这就是发生错误的原因:

select teachers.teacher_id from teachers left join timetable on 
timetable.teacher_id = teachers.teacher_id;

【讨论】:

  • 谢谢,这个命令执行了,但是我在时间表表中看不到任何数据?
  • 时间表中有数据吗?如果您给出有问题的表结构,那就更好了
  • 通过查询修改了一下 - 现在检查
  • 时间表表有三行教师ID,学生ID,班级ID,我想从教师表中获取教师ID中的数据。
  • 使用左连接,然后它会为您提供教师表中的所有 id - 修改了我的答案 - 现在检查
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-12
  • 1970-01-01
  • 2010-10-29
  • 1970-01-01
  • 1970-01-01
  • 2016-04-22
  • 1970-01-01
相关资源
最近更新 更多