我有一个查询,该查询在MySQL Workbench中运行得很好,但是一旦尝试在Data Studio的mysql连接器中运行它,就会遇到与Data Studio相关的错误。我一直在尝试四处搜寻,并在SO和Data Studio留言板上询问一些想法,但想法不多。我发现大多数回复都与Java有关。
我的查询:
CREATE TEMPORARY TABLE cte_most_recent_record
SELECT
leeds_new.leenk_ladder_history.member_id as member_id,
max(leeds_new.leenk_ladder_history.date_trigger_event) AS date_trigger_event_max
FROM leeds_new.leenk_ladder_history
WHERE leeds_new.leenk_ladder_history.ladder_change = 1 and leeds_new.leenk_ladder_history.ladder_advocacy is not NULL
group by leeds_new.leenk_ladder_history.member_id;
CREATE TEMPORARY TABLE cte_most_recent_record_date_ladder
select
lh.member_id,
lh.ladder_advocacy,
lh.date_trigger_event
from leeds_new.leenk_ladder_history as lh
inner join
cte_most_recent_record as cte_rr on lh.member_id = cte_rr.member_id
and lh.date_trigger_event = cte_rr.date_trigger_event_max
limit 100;
CREATE TEMPORARY TABLE cte_ladder_counts_before
select
ladder_advocacy,
count(ladder_advocacy) as ladder_counts_before
from cte_most_recent_record_date_ladder
where date_trigger_event < date('2018-01-01')
group by ladder_advocacy;
CREATE TEMPORARY TABLE cte_ladder_counts_after
select
ladder_advocacy,
count(ladder_advocacy) as ladder_counts_after
from cte_most_recent_record_date_ladder
where date_trigger_event > date('2018-01-01')
group by ladder_advocacy;
select
cte_ladder_counts_before.ladder_advocacy,
cte_ladder_counts_before.ladder_counts_before,
ladder_counts_after,
ladder_counts_before - ladder_counts_after
from cte_ladder_counts_before
inner join cte_ladder_counts_after on cte_ladder_counts_before.ladder_advocacy = cte_ladder_counts_after.ladder_advocacy;
drop table cte_most_recent_record;
drop table cte_most_recent_record_date_ladder;
drop table cte_ladder_counts_before;
drop table cte_ladder_counts_after;
错误:
Sorry, we encountered an error and were unable to complete your request.
Failed to execute connection with error: Can not issue data manipulation statements with executeQuery().
Error ID: 24721465
我认为这与在同一查询中有多个表有关-因为我可以仅使用select语句之一来运行查询?但是我不确定是否还有其他我应该注意的数据工作室内容。
有什么想法吗?
答案 0 :(得分:0)
我知道答案来得太晚了,但是以防万一将来有人需要它。我今天遇到了同样的问题。答案很容易解决,很令人沮丧。
您正在使用CREATE TEMPORARY TABLE
句子(就像我一样)。然后我意识到DataStudio无法处理该句子。 (显然,它也不能执行多重查询。)
所以我的解决方法是实际创建数据库中的表,而不是临时创建表。 (有效但一点也不干净)...并删除查询中的CREATE TEMPORARY TABLE
句子。就像是一种魅力,但阴暗的一面,现在我的数据库中只有一个无用的表用于处理该查询。
希望这会有所帮助。