【问题标题】:SQLSTATE[42000]: Syntax error or access violation: 1248 Every derived table must have its own aliasSQLSTATE[42000]:语法错误或访问冲突:1248 每个派生表都必须有自己的别名
【发布时间】:2012-09-26 20:51:09
【问题描述】:

我试图修复这个请求几个小时都没有成功,所以我希望你们能帮助我找出问题所在:

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 每个派生表都必须有自己的别名,这很奇怪,因为我确实为每个表都赋予了自己的别名

【问题讨论】:

  • 首先按每个子查询分解查询。然后到每一列。

标签: mysql


【解决方案1】:

您的第一个子查询似乎缺少别名:

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, 

另外,除非您没有发布完整的查询,否则我认为您可能会错过最终的)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多