Google Cloud MySql在哪里无法正常工作

时间:2018-07-07 11:36:57

标签: mysql google-cloud-sql mysql-5.7

使用WHERE IN和临时表供稿作为参数,MySql查询引擎将返回完全意外的结果。

CREATE TABLE MDC_Customer (StoreId char(20), Name nvarchar(100));
CREATE TABLE MDC_Caixa (Data datetime, CaixaId int, StoreId char(20), Revenue DECIMAL(15,2));

CREATE TEMPORARY TABLE IF NOT EXISTS StoreRev (Stores nvarchar(44));

TRUNCATE TABLE StoreRev;

INSERT INTO StoreRev SELECT StoreId FROM MDC_Customer WHERE StoreId IN ('00013');

CREATE TEMPORARY TABLE IF NOT EXISTS CaixaRev (CaixaID int, StoreID char(20));

TRUNCATE TABLE CaixaRev;

INSERT INTO CaixaRev 
    SELECT CaixaId, StoreId 
    FROM MDC_Caixa CX 
    WHERE CAST(CX.Data AS date) BETWEEN '2018-05-01' AND '2018-05-01' 
        AND CX.StoreID IN (SELECT StoreID FROM StoreRev);

SELECT * FROM StoreRev;
SELECT * FROM CaixaRev;
DROP TEMPORARY TABLE StoreRev;
DROP TEMPORARY TABLE CaixaRev;

实际结果: MySql计算CX.StoreID IN(从StoreRev中选择SELECT StoreID)为true,而不是抛出“ INVALID SYNTAX ERROR”(无效语法错误);

预期结果: MySql应该抛出“ INVALID SYNTAX ERROR”(无效语法错误),报告StoreRev临时表中没有“ StoreID”字段;

0 个答案:

没有答案