2016-06-09 47 views
-1

我想用表柔爲了讓這些表連接:如何使用軟以便與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

您需要ORDER BY子句中各列之間的逗號。 – jarlh

+0

我得到原因:org.postgresql.util.PSQLException:錯誤:列account.asc不存在 位置:100 –

+0

你如何運行查詢?它看起來像你正在使用格式或類似的東西('%S')​​,結合perl數據庫參數('?')。在這種情況下,您必須將「_asc_」作爲第一個參數傳遞給Format函數。 –

回答

0

這是不完全清楚你問這樣反而我建議幾個故障排除步驟是什麼:

  1. 它看起來像你正在嘗試做一些查詢預處理。請在完成此操作後記錄查詢並根據此問題進行疑難解答。否則,請檢查PostgreSQL日誌以查找失敗的查詢文本字符串(由於處理佔位符的方式,記錄的查詢更好)。

  2. 查看查詢本身後,查看它的語法錯誤。

這些問題幾乎可以肯定在你沒有向我們顯示的部分代碼中。知道如何開始故障排除過程可能值得一提。

相關問題