将MySQL查询转换为Informix
我使用以下查询从mysql表中检索信息将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
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。它起作用了,补充道。