我尝试了几个小时来修复这个请求,但没有成功,所以我希望你们能帮我找到问题所在:
SELECT ((
SELECT DISTINCT *
FROM (
SELECT REPLACE(source_name, "+", "") AS name
FROM events
WHERE source_name!=""
UNION
SELECT REPLACE(target_name, "+", "") AS name
FROM events
WHERE target_name!=""
)
) AS player_name,
(
SELECT COUNT(*)
FROM events
WHERE source_name=player_name AND event_name="beforePlayerBan"
) as nbr_bans,
(
SELECT COUNT(*)
FROM events
WHERE source_name=player_name AND event_name="beforePlayerKick"
) as nbr_kicks,
(
SELECT COUNT(*)
FROM events
WHERE
(source_name=player_name OR target_name=player_name)
AND event_name="afterBattleStarted"
) as nbr_battles,
(
SELECT COUNT(*)
FROM events
WHERE source_name=player_name AND result=0
) as nbr_wins,
(
SELECT COUNT(*)
FROM events
WHERE target_name=player_name AND result=0
) as nbr_defeats,
(
SELECT COUNT(*)
FROM events
WHERE (source_name=player_name OR target_name=player_name) AND result=1
) as nbr_ties,
(
SELECT COUNT(*)
FROM events
WHERE (source_name=player_name OR target_name=player_name) AND result=2
) as nbr_forfeits
错误是SQLSTATE[42000]:语法错误或访问冲突:1248每个派生表都必须有自己的别名,这很奇怪,因为我给了每个表自己的别名
您的第一个子查询似乎缺少别名:
SELECT ((
SELECT DISTINCT *
FROM (
SELECT REPLACE(source_name, "+", "") AS name
FROM events
WHERE source_name!=""
UNION
SELECT REPLACE(target_name, "+", "") AS name
FROM events
WHERE target_name!=""
) myMissingAlias -- alias needed here
) AS player_name,
另外,除非您没有发布完整的查询,否则我认为您可能缺少最后一个)
问题内容: 我无法为自己的生活弄清楚为什么这是错误的 问题答案: 它的含义与所说的完全一样-每个派生表都 必须 有一个别名。 更新。这应该为您工作:
问题内容: 运行以下查询时出现该错误: 我知道我需要添加别名,但是我不确定在哪里 问题答案: 您需要为子查询添加别名,并且需要将条件应用于您合并的两个查询: 或返回数据,以便您可以在外部查询中应用条件:
是否有代码缺失/不正确? 谢谢
问题内容: 这个问题已经在这里有了答案 : 由于在MySQL中使用保留字作为表或列名而导致的语法错误 (1个答案) 3年前关闭。 我已经浏览了所有其他StackOverflow(和Google)中相同问题的帖子,但似乎都没有解决我的问题。 我正在使用PDO和PHP。 我的代码: 而第一个print_r给 这是预期的(没有一个为空) 但它输出错误 SQLSTATE [42000]:语法错误或访问冲突
问题内容: 我在MySQL上运行此查询 它给出了这个错误: 每个派生表必须具有自己的别名。 是什么导致此错误? 问题答案: 每个派生表(AKA子查询)确实必须有一个别名。也就是说,括号中的每个查询都必须被赋予一个别名(),该别名可以在外部查询的其余部分中用于引用它。 当然,对于您而言,整个查询可以替换为:
问题内容: 在MySQL中使用此查询时出现错误。 查询逻辑是正确的,我已经在Oracle中进行了尝试,并且运行正常,但是在MySQL中运行时出现错误。 我查看了关于StackOverflow的先前问题,但没有找到什么对我有帮助。 这是查询: 这是错误: 问题答案: 您需要为子查询提供别名,如下所示: 从文档中, 子查询在SELECT语句的FROM子句中是合法的。实际语法为: SELECT … FR
问题内容: 我想在同一查询中使用WhereIn和Groupby来获取结果。 我已经试过了: 但是我得到了这个错误信息: SQLSTATE [42000]:语法错误或访问冲突:1055’sbrtpt.loading.id’不在GROUP BY中(SQL:从中选择从(14,15,16)组中的id按Vehicle_no进行加载) 问题答案: 简短答案 在-> 数组中 设置为全部禁用。 .... 要么 您
在cmd中提交“php artisan migrate:fresh”后出现错误。 SQLSTATE[42000]:语法错误或访问冲突:1071指定的密钥太长;最大密钥长度为767字节(SQL:alter tableaddunique()