多个内部连接MySQL w/.csv OUTFILE语句和ORs与ANDs查询-返回数据库名称错误

多个内部连接MySQL w/.csv OUTFILE语句和ORs与ANDs查询-返回数据库名称错误,mysql,Mysql,我已经玩了几个小时这个SQL,遇到了一个问题,MySQL CLI返回“mydatabasename.a table not Existence”(mydatabasename.a table not Existence),我通过以前的测试和USE语句验证了我实际上使用的是正确的数据库。我猜这个查询是错误的,但是我很难摆脱这个错误。谢谢你的建议 SELECT a.tabl1, b.tabl2, c.tabl3 INTO OUTFILE 'H:/output/output.csv' fields

我已经玩了几个小时这个SQL,遇到了一个问题,MySQL CLI返回“mydatabasename.a table not Existence”(mydatabasename.a table not Existence),我通过以前的测试和USE语句验证了我实际上使用的是正确的数据库。我猜这个查询是错误的,但是我很难摆脱这个错误。谢谢你的建议

SELECT a.tabl1, b.tabl2, c.tabl3
INTO OUTFILE 'H:/output/output.csv' 
fields TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' 
FROM a, b, c   
INNER JOIN a.tabl1 ON a.id = b.id
INNER JOIN b.tabl2 ON b.id = c.id
WHERE 
       (

   b.case_txt = 'case1' OR   
   b.case_txt = 'case2' OR
   b.case_txt = 'case3' OR
   )

AND 
c.address != ''
AND 
c.state = 'OR' 
AND 
date LIKE '%02/01/13%'; 

这就是你想要做的吗

SELECT a.*, b.*, c.*
INTO OUTFILE 'H:/output/output.csv' 
fields TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' 
FROM tabl1 a 
INNER JOIN tabl2 b ON a.id = b.id
INNER JOIN tabl3 c ON b.id = c.id
WHERE 
   (
   b.case_txt = 'case1' OR   
   b.case_txt = 'case2' OR
   b.case_txt = 'case3'
   )

…等等。

这就是你想要做的吗

SELECT a.*, b.*, c.*
INTO OUTFILE 'H:/output/output.csv' 
fields TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' 
FROM tabl1 a 
INNER JOIN tabl2 b ON a.id = b.id
INNER JOIN tabl3 c ON b.id = c.id
WHERE 
   (
   b.case_txt = 'case1' OR   
   b.case_txt = 'case2' OR
   b.case_txt = 'case3'
   )

…等等。

这就是你想要做的吗

SELECT a.*, b.*, c.*
INTO OUTFILE 'H:/output/output.csv' 
fields TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' 
FROM tabl1 a 
INNER JOIN tabl2 b ON a.id = b.id
INNER JOIN tabl3 c ON b.id = c.id
WHERE 
   (
   b.case_txt = 'case1' OR   
   b.case_txt = 'case2' OR
   b.case_txt = 'case3'
   )

…等等。

这就是你想要做的吗

SELECT a.*, b.*, c.*
INTO OUTFILE 'H:/output/output.csv' 
fields TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' 
FROM tabl1 a 
INNER JOIN tabl2 b ON a.id = b.id
INNER JOIN tabl3 c ON b.id = c.id
WHERE 
   (
   b.case_txt = 'case1' OR   
   b.case_txt = 'case2' OR
   b.case_txt = 'case3'
   )
…等等

而不是

FROM a, b, c                        -- cartesian product of these three tables joined with   
INNER JOIN a.tabl1 ON a.id = b.id   -- nonexisting tables a.tabl1 (table tabl1 in db a)
INNER JOIN b.tabl2 ON b.id = c.id   -- and tabl2 in database b
你想用

FROM a  
INNER JOIN b ON a.id = b.id
INNER JOIN c ON b.id = c.id
而不是

FROM a, b, c                        -- cartesian product of these three tables joined with   
INNER JOIN a.tabl1 ON a.id = b.id   -- nonexisting tables a.tabl1 (table tabl1 in db a)
INNER JOIN b.tabl2 ON b.id = c.id   -- and tabl2 in database b
你想用

FROM a  
INNER JOIN b ON a.id = b.id
INNER JOIN c ON b.id = c.id
而不是

FROM a, b, c                        -- cartesian product of these three tables joined with   
INNER JOIN a.tabl1 ON a.id = b.id   -- nonexisting tables a.tabl1 (table tabl1 in db a)
INNER JOIN b.tabl2 ON b.id = c.id   -- and tabl2 in database b
你想用

FROM a  
INNER JOIN b ON a.id = b.id
INNER JOIN c ON b.id = c.id
而不是

FROM a, b, c                        -- cartesian product of these three tables joined with   
INNER JOIN a.tabl1 ON a.id = b.id   -- nonexisting tables a.tabl1 (table tabl1 in db a)
INNER JOIN b.tabl2 ON b.id = c.id   -- and tabl2 in database b
你想用

FROM a  
INNER JOIN b ON a.id = b.id
INNER JOIN c ON b.id = c.id

如果要联接名为
tabl1
(别名
a
)、
tabl2
(别名
b
)和
tabl3
(别名
c
)的三个表,并将所有结果字段选择到.csv文件中,其工作方式如下:

SELECT *
    INTO OUTFILE 'H:/output/output.csv' 
    fields TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
    FROM tabl1 AS a
    INNER JOIN tabl2 AS b
    ON a.id = b.id
    INNER JOIN tabl3 AS c
    ON b.id = c.id
    WHERE (
        b.case_txt = 'case1' OR   
        b.case_txt = 'case2' OR
        b.case_txt = 'case3'
   )
   AND c.address != ''
   AND c.state = 'OR' 
   AND date LIKE '%02/01/13%'; 


我在本地测试了代码,它就像一个charme一样工作。

如果要将名为
tabl1
(别名
a
)、
tabl2
(别名
b
)和
tabl3
(别名
c
)的三个表连接起来,并将所有结果字段选择到.csv文件中,其工作原理如下:

SELECT *
    INTO OUTFILE 'H:/output/output.csv' 
    fields TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
    FROM tabl1 AS a
    INNER JOIN tabl2 AS b
    ON a.id = b.id
    INNER JOIN tabl3 AS c
    ON b.id = c.id
    WHERE (
        b.case_txt = 'case1' OR   
        b.case_txt = 'case2' OR
        b.case_txt = 'case3'
   )
   AND c.address != ''
   AND c.state = 'OR' 
   AND date LIKE '%02/01/13%'; 


我在本地测试了代码,它就像一个charme一样工作。

如果要将名为
tabl1
(别名
a
)、
tabl2
(别名
b
)和
tabl3
(别名
c
)的三个表连接起来,并将所有结果字段选择到.csv文件中,其工作原理如下:

SELECT *
    INTO OUTFILE 'H:/output/output.csv' 
    fields TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
    FROM tabl1 AS a
    INNER JOIN tabl2 AS b
    ON a.id = b.id
    INNER JOIN tabl3 AS c
    ON b.id = c.id
    WHERE (
        b.case_txt = 'case1' OR   
        b.case_txt = 'case2' OR
        b.case_txt = 'case3'
   )
   AND c.address != ''
   AND c.state = 'OR' 
   AND date LIKE '%02/01/13%'; 


我在本地测试了代码,它就像一个charme一样工作。

如果要将名为
tabl1
(别名
a
)、
tabl2
(别名
b
)和
tabl3
(别名
c
)的三个表连接起来,并将所有结果字段选择到.csv文件中,其工作原理如下:

SELECT *
    INTO OUTFILE 'H:/output/output.csv' 
    fields TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
    FROM tabl1 AS a
    INNER JOIN tabl2 AS b
    ON a.id = b.id
    INNER JOIN tabl3 AS c
    ON b.id = c.id
    WHERE (
        b.case_txt = 'case1' OR   
        b.case_txt = 'case2' OR
        b.case_txt = 'case3'
   )
   AND c.address != ''
   AND c.state = 'OR' 
   AND date LIKE '%02/01/13%'; 



我在本地测试了代码,它就像一个charme。表名是“a”还是“tabl1”?
a
真的是您的表名吗?我看不出您在哪里提供了表名别名,因此如果这不是真正的表名,您将遇到此问题。您的连接语法也很奇怪。尝试从a.id=b.id上的内部联接b中执行
,b.id=c.id上的内部联接c
。在这里,当您指定此
内部联接a.tabl1
时,我感到困惑。您不能指定列名作为联接目标,列名只能在
ON
条件下使用。您好SQLDBA,tabl1,tabl2。表3是表名。表名是“a”还是“tabl1”?
a
真的是您的表名吗?我看不出您在哪里提供了表名别名,因此如果这不是真正的表名,您将遇到此问题。您的连接语法也很奇怪。尝试从a.id=b.id上的内部联接b中执行
,b.id=c.id上的内部联接c
。在这里,当您指定此
内部联接a.tabl1
时,我感到困惑。您不能指定列名作为联接目标,列名只能在
ON
条件下使用。您好SQLDBA,tabl1,tabl2。表3是表名。表名是“a”还是“tabl1”?
a
真的是您的表名吗?我看不出您在哪里提供了表名别名,因此如果这不是真正的表名,您将遇到此问题。您的连接语法也很奇怪。尝试从a.id=b.id上的内部联接b中执行
,b.id=c.id上的内部联接c
。在这里,当您指定此
内部联接a.tabl1
时,我感到困惑。您不能指定列名作为联接目标,列名只能在
ON
条件下使用。您好SQLDBA,tabl1,tabl2。表3是表名。表名是“a”还是“tabl1”?
a
真的是您的表名吗?我看不出您在哪里提供了表名别名,因此如果这不是真正的表名,您将遇到此问题。您的连接语法也很奇怪。尝试从a.id=b.id上的内部联接b中执行
,b.id=c.id上的内部联接c
。在这里,当您指定此
内部联接a.tabl1
时,我感到困惑。您不能指定列名作为联接目标,列名只能在
ON
条件下使用。您好SQLDBA,tabl1,tabl2。表3是表名。我几分钟前就知道了,你的代码与我的结果相符。感谢您的指导和建议。这确实有效。我应该添加一个注释,我需要将标题添加到.csv文件中,并且必须对此进行一些修改:选择“id”,“case_text”联合选择a.id,b.case_text到…@OldWest-此代码不起作用。请参见结尾处不必要的
。结果是出现了一个错误。对,我提出的代码没有额外的或,似乎是来自SQLDBA的一个简单错误。我删除了手术室。我几分钟前就知道了,你的代码与我的想法相符。感谢您的指导和建议。这确实有效。我应该添加一个注释,我需要将标题添加到.csv文件中,并且必须对此进行一些修改:选择“id”,“case_text”联合选择a.id,b.case_text到…@OldWest-此代码不起作用。请参见结尾处不必要的
。结果是出现了一个错误。对,我提出的代码没有额外的或,似乎是来自SQLDBA的一个简单错误。我删除了手术室。我几分钟前就知道了,你的代码与我的想法相符。感谢您的指导和建议。这确实有效。我应该添加一个注释,我需要将标题添加到.csv文件中,并且必须对此进行一些修改:选择“id”,“case_text”联合选择a.id,b.case_text到…@OldWest-此代码不起作用。请参见结尾处不必要的
。结果是出现了一个错误。对,我提出的代码没有额外的或,似乎是来自SQLDBA的一个简单错误。我删除了手术室。我几分钟前就知道了,你的代码和我的匹配