[英]Selecting a mysql row from one table based on select statement in another
[英]MySQL-Need to select a row from one table to another table WHERE a <# will generate in SELECT statement
我的第一个表格有部门名称和博士学位编号。 我的第二张桌子上有特定部门的教授名字。 我需要拉动少于50名博士的部门的教授。
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小于50的结果中获取教授姓名。 我知道使用FROM DEPT语句不会得到结果。 任何想法 /
就个人而言,我将为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);
其次,您是否意识到您的文本字段带有撇号?
要使用这种格式选择它们,我将使用查询join
SELECT dept.dname, dept.numphds, prof.pname FROM dept join `prof` on prof.deptId = dept.deptId WHERE dept.numphds <50;
这是您的SQLFiddle演示 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.