我想对这些表使用具有软顺序的表JOIN:
CREATE TABLE ACCOUNT(
ID INTEGER NOT NULL,
USER_NAME TEXT NOT NULL,
PASSWD TEXT,
FIRST_NAME TEXT,
LAST_NAME TEXT,
E_MAIL TEXT NOT NULL,
COUNTRY TEXT,
STATE TEXT,
CITY TEXT,
ADDRESS TEXT,
STATUS INTEGER,
SECURITY_QUESTION TEXT,
SECURITY_ANSWER TEXT,
LAST_PASSWD_RESET DATE,
DESCRIPTION TEXT,
LAST_UPDATED DATE,
CREATED DATE
)
;
-- ADD KEYS FOR TABLE ACCOUNT
ALTER TABLE ACCOUNT ADD CONSTRAINT KEY1 PRIMARY KEY (ID)
;
ALTER TABLE ACCOUNT ADD CONSTRAINT USER_NAME UNIQUE (USER_NAME)
;
ALTER TABLE ACCOUNT ADD CONSTRAINT E_MAIL UNIQUE (E_MAIL)
;
-- TABLE ACCOUNT_ROLE
CREATE TABLE ACCOUNT_ROLE(
ID INTEGER NOT NULL,
USER_NAME TEXT NOT NULL,
ROLE INTEGER,
PERMISSION TEXT,
LAST_UPDATED DATE,
CREATED DATE
)
;
-- CREATE INDEXES FOR TABLE ACCOUNT_ROLE
CREATE INDEX IX_RELATIONSHIP19 ON ACCOUNT_ROLE (ID)
;
-- ADD KEYS FOR TABLE ACCOUNT_ROLE
ALTER TABLE ACCOUNT_ROLE ADD CONSTRAINT KEY26 PRIMARY KEY (ID)
;
ALTER TABLE ACCOUNT_ROLE ADD CONSTRAINT RELATIONSHIP19 FOREIGN KEY (ID) REFERENCES ACCOUNT (ID) ON DELETE CASCADE ON UPDATE CASCADE
;
工作查询:
SELECT * FROM ACCOUNT ORDER BY %S %S offset ? limit ?
我尝试了这个SQL查询:
SELECT *
FROM ACCOUNT_ROLE
INNER JOIN ACCOUNT ON ACCOUNT.ID = ACCOUNT_ROLE.ID
ORDER BY Account.%S Account.%S offset ? limit ?
但我收到此错误消息:
Caused by: org.postgresql.util.PSQLException: ERROR: syntax error at or near "Account"
Position: 99
如何修复此查询?我想从两个表中获取数据并根据值对其进行排序。
答案 0 :(得分:0)
目前还不完全清楚你在问什么,所以我提出了一些故障排除步骤:
看起来您正在尝试进行一些查询预处理。请在完成此操作后记录查询,并根据该问题进行故障排除。如果不这样做,请检查PostgreSQL日志中是否存在失败的查询文本字符串(由于处理占位符的方式,记录的查询更好)。
一旦查看查询本身,请查看它是否存在语法错误。
问题几乎肯定存在于您未向我们展示的部分代码中。知道如何开始故障排除过程,但值得一提。