MySQL需要从一个表到另一个表中选择一行,在select语句中将生成
我的第一个表格有系名和博士学位数。我的第二张桌子上有教授在特定部门的名字。我需要把那些博士学位不足50个的系里的教授拉过来MySQL需要从一个表到另一个表中选择一行,在select语句中将生成,mysql,Mysql,我的第一个表格有系名和博士学位数。我的第二张桌子上有教授在特定部门的名字。我需要把那些博士学位不足50个的系里的教授拉过来 CREATE TABLE Dept ( dname VARCHAR(100), numphds INT ); INSERT INTO Dept VALUES ( '"Chemical Engineering"', 32 ); INSERT INTO Dept VALUES ( '"Civil Engineer
CREATE TABLE Dept (
dname VARCHAR(100),
numphds INT
);
INSERT INTO Dept VALUES ( '"Chemical Engineering"', 32 );
INSERT INTO Dept VALUES ( '"Civil Engineering"', 88 );
INSERT INTO Dept VALUES ( '"Computer Sciences"', 47 );
CREATE TABLE Prof (
pname VARCHAR(100),
dname VARCHAR(100)
);
INSERT INTO Prof VALUES ( '"Brian, C."', '"Chemical Engineering"' );
INSERT INTO Prof VALUES ( '"Brown, S."', '"Civil Engineering"' );
INSERT INTO Prof VALUES ( '"Jones, J."', '"Computer Sciences"' );
SELECT dname, numphds FROM dept WHERE numphds <50;
/使用下面的SELECT语句是我迷路的地方,我似乎无法理解如何在我个人的dname和numphds结果中获得教授姓名,我会给Dept一个主键和索引列deptId,并将其也放在Prof表中。这样,就不需要在文本字段上联接
CREATE TABLE Dept (
deptId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
dname VARCHAR(100),
numphds INT
);
INSERT INTO Dept VALUES ( 1, 'Chemical Engineering', 32 );
INSERT INTO Dept VALUES ( 2, 'Civil Engineering', 88 );
INSERT INTO Dept VALUES ( 3, 'Computer Sciences', 47 );
CREATE TABLE Prof (
pname VARCHAR(100),
dname VARCHAR(100),
deptId INT NOT NULL AUTO_INCREMENT PRIMARY KEY
);
INSERT INTO Prof VALUES ( 'Brian, C.', 'Chemical Engineering', 1);
INSERT INTO Prof VALUES ( 'Brown, S.', 'Civil Engineering', 2);
INSERT INTO Prof VALUES ( 'Jones, J.', 'Computer Sciences', 3);
第二,您是否意识到文本字段中有撇号
要选择它们,使用这种格式,我将使用查询加入
SELECT dept.dname, dept.numphds, prof.pname FROM dept join `prof` on prof.deptId = dept.deptId WHERE dept.numphds <50;
这是你的护照 你现在得到了什么?有错误吗?尝试在表名和列名中保持相同的大小写,以便在查询中使用Dept而不是Dept。这是一个基本的联接查询。你在学习SQL吗?如果是这样的话,你应该在你的问题中说明这一点。如果没有,您应该学习一些SQL,以便有效地使用数据库。谢谢!我对这一点还不熟悉,正在努力了解基本知识。我一直在通过LYNDA.com学习,最近被告知使用此网站帮助我澄清一些问题。我喜欢小提琴,谢谢你介绍我。我用撇号在我的结果中有一个不同的外观。我以为我必须用外键才能得到答案,但我知道你没有用外键。我将不得不进一步研究这个JOIN语句。嗨@Mel_G,使用外键对于数据一致性和规范化来说是一个好主意,但要实现更大的目标需要迈出一小步: