这个数据库查询语句有什么错误?

CREATE TABLE Student (SNO VARCHAR(10) primary key,Sname VARCHAR(10) NOT NULL,Sage DATETIME,Ssex ENUM(‘男’,’女’));

1.这根本不是什么查询语句,这是建表语句
2.如果你数据库里已经有这个表了,那肯定报错呀

img


这个逗号是英文的不是中文


CREATE TABLE Student
(
SNO VARCHAR(10) primary key,
Sname VARCHAR(10) NOT NULL,
Sage DATETIME,
Ssex ENUM('男',’女’)DEFAULT NULL
);
SELECT * FROM
(SELECT SCORE,SC.SNO AS SC_SNO FROM SC 
JOIN Student AS
ST ON ST.SNO = SC.SNO WHERE CNO = '001') 
AS A,
(SELECT SCORE,SC.SNO AS SC_SNO FROM SC JOIN Student AS ST ON ST.SNO = SC.SNO WHERE CNO = '002') AS B
WHERE A.SC_SNO=B.SC_SNO AND A.SCORE > B.SCORE

引号换英文引号,as去掉,这样试试

SELECT * FROM (SELECT SCORE,SC.SNO AS SC_SNO FROM SC JOIN Student AS ST ON ST.SNO = SC.`SNO` WHERE CNO = '001')  A,
(SELECT SCORE,SC.SNO AS SC_SNO FROM SC JOIN Student AS ST ON ST.SNO = SC.`SNO` WHERE CNO = '002')  B WHERE A.SC_SNO=B.SC_SNO AND A.SCORE > B.SCORE;

看着只是中英文引号的问题,反引号要么都加要么都不加;可能存在的问题是子查询的过滤条件和检索字段没有加别名,如果两张表都存在同名字段的话可能会报错。

SELECT
    *
FROM
    (SELECT
        SCORE,
        SC.SNO AS SC_SNO
    FROM
        SC
    JOIN Student AS ST 
    ON
        ST.SNO = SC.SNO
    WHERE
        CNO = '001') AS A,
    (SELECT
        SCORE,
        SC.SNO AS SC_SNO
    FROM
        SC
    JOIN Student AS ST
    ON
        ST.SNO = SC.SNO
    WHERE
        CNO = '002') AS B
WHERE
    A.SC_SNO = B.SC_SNO
AND 
    A.SCORE > B.SCORE