簡體   English   中英

MySQL-需要在一個表中選擇一行到另一個表,在SELECT語句中將生成一個<#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM