gpt4 book ai didi

MySql将id定义的数据与来自不同行的数据进行匹配

转载 作者:行者123 更新时间:2023-11-29 17:34:23 24 4
gpt4 key购买 nike

我这学期正在学习数据库管理类(class),我正在解决我们分配的问题之一。我们应该创建一个数据库并为所描述的操作提供 mysql 语句。

向我发出的操作是这样描述的:

获取与 20 号学生居住在同一城镇的同性别学生的数量。

我尝试使用内部联接,但出现了令我困惑的错误。我也尝试过匹配,但由于没有说明数据,所以也不起作用。
这是我的代码。

create table student (nr INTEGER PRIMARY KEY, town TEXT, birthdate 
INTEGER, sex INTEGER, sname TEXT, ssurname TEXT);

create table lecturer (lnr INTEGER PRIMARY KEY, lname TEXT, lsurname TEXT);

create table course (cnr INTEGER PRIMARY KEY, cname TEXT, lnr INTEGER,
FOREIGN KEY fk_clnr (lnr)
REFERENCES lecturer (lnr) );

create table enrolledin (nr INTEGER, cnr INTEGER,
FOREIGN KEY fk_nr (nr)
REFERENCES student (nr),

FOREIGN KEY fk_cnr (cnr)
REFERENCES course (cnr) );

create table exam (lnr INTEGER, cnr INTEGER, nr INTEGER, note TEXT,
FOREIGN KEY fk_enr (nr)
REFERENCES student (nr),

FOREIGN KEY fk_ecnr (cnr)
REFERENCES course (cnr),

FOREIGN KEY fk_elnr (lnr)
REFERENCES lecturer (lnr) );

select nr, sex, town
FROM student
WHERE student AS S INNER JOIN matches M ON
S.sex = M.sex AND S.town = M.town WHEN nr = 20;

最佳答案

Get the numbers of students who have the same sex and live in the same town as student 20

您应该通过子选择来解决此问题。我不明白你为什么使用连接。所有信息均可供学生查阅。

那么让我们开始吧:

首先您需要编号为 20 的学生的性别:

SELECT sex FROM student WHERE nr = 20;

比您需要 nr 20 的学生所在的城镇:

SELECT town FROM student WHERE nr = 20;

现在您需要学生的数量:

SELECT COUNT(*) FROM student;

至少你把所有东西放在一起:

SELECT COUNT(*) FROM student
WHERE sex = (
SELECT sex FROM student WHERE nr = 20
)
AND town LIKE (
SELECT town FROM student WHERE nr = 20
);

关于MySql将id定义的数据与来自不同行的数据进行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50415787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com