将MySQL查询转换为Informix

将MySQL查询转换为Informix,mysql,sql,informix,Mysql,Sql,Informix,我使用以下查询从mysql表中检索信息 SELECT ACCESS_TOKEN, AUTHZ_USER, TOKEN_SCOPE, TOKEN_STATE, REFRESH_TOKEN_TIME_CREATED, REFRESH_TOKEN_VALIDITY_PERIOD, IDN_OAUTH2_ACCESS_TOKEN_SELECTED.TOKEN_ID FROM (SELECT ACCESS_TOKE

我使用以下查询从mysql表中检索信息

SELECT ACCESS_TOKEN,
       AUTHZ_USER,
       TOKEN_SCOPE,
       TOKEN_STATE,
       REFRESH_TOKEN_TIME_CREATED,
       REFRESH_TOKEN_VALIDITY_PERIOD,
       IDN_OAUTH2_ACCESS_TOKEN_SELECTED.TOKEN_ID
FROM
    (SELECT ACCESS_TOKEN,
            AUTHZ_USER, 
            TOKEN_STATE, 
            REFRESH_TOKEN_TIME_CREATED,
            REFRESH_TOKEN_VALIDITY_PERIOD, 
            TOKEN_ID 
     FROM IDN_OAUTH2_ACCESS_TOKEN
     WHERE CONSUMER_KEY = "" 
       AND REFRESH_TOKEN = "" 
     ORDER BY TIME_CREATED DESC
     LIMIT 1) AS IDN_OAUTH2_ACCESS_TOKEN_SELECTED 
  JOIN IDN_OAUTH2_SCOPE_ASSOCIATION 
WHERE IDN_OAUTH2_ACCESS_TOKEN_SELECTED.TOKEN_ID =
IDN_OAUTH2_SCOPE_ASSOCIATION.TOKEN_ID;

如何在具有相同表的Informix数据库中获得相同的结果?

通过将联接的“限制1”转换为“第一个1”,将联接的“位置”转换为“开”,可以获得相同的结果

SELECT ACCESS_TOKEN, AUTHZ_USER, TOKEN_SCOPE, TOKEN_STATE,
       REFRESH_TOKEN_TIME_CREATED, REFRESH_TOKEN_VALIDITY_PERIOD,
       IDN_OAUTH2_ACCESS_TOKEN_SELECTED.TOKEN_ID
  FROM (SELECT FIRST 1 ACCESS_TOKEN, AUTHZ_USER, TOKEN_STATE,
               REFRESH_TOKEN_TIME_CREATED, REFRESH_TOKEN_VALIDITY_PERIOD,
               TOKEN_ID
          FROM IDN_OAUTH2_ACCESS_TOKEN
         WHERE CONSUMER_KEY = "" AND REFRESH_TOKEN = ""
         ORDER BY TIME_CREATED DESC) AS IDN_OAUTH2_ACCESS_TOKEN_SELECTED
  JOIN IDN_OAUTH2_SCOPE_ASSOCIATION
    ON IDN_OAUTH2_ACCESS_TOKEN_SELECTED.TOKEN_ID = IDN_OAUTH2_SCOPE_ASSOCIATION.TOKEN_ID;

ANSI SQL要求每个联接都有一个ON,但这里有一个WHERE。只需将最后一个位置改为ON。它起作用了,补充道。