Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 为什么我的关系表没有任何输出?_Mysql_Database - Fatal编程技术网

Mysql 为什么我的关系表没有任何输出?

Mysql 为什么我的关系表没有任何输出?,mysql,database,Mysql,Database,我已经创建了“students”表,其中“sid”是主键,并且在sid中插入了许多值。我创建了第二个名为“courses”的表,它有一个主键“cid”,我也为cid输入了值。现在,我想创建一个名为“enroll”的关系表,我像这样做了- create table enroll( grade char(2), sid int not null, cid int not null, primary key(sid,cid), foreign key (cid)

我已经创建了“students”表,其中“sid”是主键,并且在sid中插入了许多值。我创建了第二个名为“courses”的表,它有一个主键“cid”,我也为cid输入了值。现在,我想创建一个名为“enroll”的关系表,我像这样做了-

create table enroll(
    grade char(2),
    sid int not null,
    cid int not null,
    primary key(sid,cid),
    foreign key (cid) references courses(cid) on delete cascade,
    foreign key (sid) references students(sid) on delete cascade
);
现在,当我尝试使用select*from enroll查看表时;
我没有得到任何输出。它说返回了0行。为什么会这样?它不是应该包含来自其他表的所有sid和cid值吗?

您刚刚创建了表结构、架构,您的表是空的,因此您不会得到任何结果。

要从其他表中的值创建新表,您可以执行以下操作:

CREATE TABLE new_table AS (SELECT * FROM old_table);
select语句将是将被提取的字段。 您可以将列重命名为:选择[field name]为[what You want field name to be] 有关更多信息,请阅读文章

无论如何,对于您的特定情况:

 Create table enroll AS (Select s.sid AS 'Sid', c.cid AS 'Cid' from courses c inner join students s on c.something = s.something)

用学生id替换“.something”

与任何其他表一样,在有人插入行之前,enroll不会包含任何行。因此我必须手动复制它们吗?就好像我已经在我的“sid”中插入了大约200个来自学生的条目,那么我必须在“注册”中再次输入所有条目吗?那么我必须手动复制它们吗?就像我在我的“sid”中插入了大约200个来自学生的条目,那么我是否必须在“注册”中再次输入所有条目user1291453 7分钟前但我必须先指定列名,对吗?我在“注册”表中有一个“成绩”条目,它没有引用到任何其他表中。我该怎么做成绩,学生的sid,课程的cid?在select语句中使用'AS'关键字命名列,然后将该成绩加入id上的表中。我假设您有一个id字段,并在ASSelect中选择成绩。。陈述