多个内部连接MySQL w/.csv OUTFILE语句和ORs与ANDs查询-返回数据库名称错误
我已经玩了几个小时这个SQL,遇到了一个问题,MySQL CLI返回“mydatabasename.a table not Existence”(mydatabasename.a table not Existence),我通过以前的测试和USE语句验证了我实际上使用的是正确的数据库。我猜这个查询是错误的,但是我很难摆脱这个错误。谢谢你的建议多个内部连接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
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的一个简单错误。我删除了手术室。我几分钟前就知道了,你的代码和我的匹配