mysql到microsoft sql server派生表语法

2nc8po8w  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(266)

我试图从from语句中创建的派生表中选择数据。我在mysql中有以下代码:

SELECT  TEMP.State, TEMP.Name

FROM    (SELECT DISTINCT STATE.State, PRODUCT.Name, PRODUCT.Price
        FROM STATE
        JOIN PRODUCT) AS TEMP

我正试图在MicrosoftSQLServer中执行相同的操作,但这不起作用,错误是“语法不正确”。我试过几种不同的组合,我能找到的任何东西都表明这应该管用。感谢大家的帮助!

xytpbqjk

xytpbqjk1#

您当前的mysql子查询似乎是一个交叉连接,因为它是一个没有任何连接的内部连接 ON 条款。sql server不支持此语法,如果确实要在此处使用交叉联接,请使用:

SELECT
    TEMP.State,
    TEMP.Name
FROM
(
    SELECT DISTINCT STATE.State, PRODUCT.Name, PRODUCT.Price
    FROM STATE
    CROSS JOIN PRODUCT
) AS TEMP;

也就是说,我认为没有理由在任何一个数据库上使用子查询,只需使用:

SELECT DISTINCT s.State, p.Name
FROM STATE s
CROSS JOIN PRODUCT p;

相关问题