2016-06-09 8 views
0

같은 ID로 테이블의 행을 선택하고 싶습니다.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 
; 

올바른 ID로 결과를 얻으려면 어떤 가입 쿼리를 사용해야합니까? 계시는대로 계단식 삭제 기능이있는 두 테이블에서 ID를 기본 키로 사용합니다.

select A.ID A.USER_NAME, A.PASSWD TEXT, A.FIRST_NAME TEXT, --and so on 
R.Id, R.User_name, R.Role_Integer --and so on 
from Account A inner join Account_Role R on 
A.Id = R.Id 
+0

모든 사용자와 계정을 선택 하시겠습니까? 또한 ACCOUNT_ROLE 테이블에 ACCOUNT_NAME 열이 있어야합니다. 그렇습니까? –

+0

Id라는 칼럼과 두 칼럼간에 명백한 관계가없는 두 개의 테이블이 있습니다. 더 많은 정보가 필요합니다. – Ash

+0

@MikhailChibel 예, 제발 저에게 보여 주실 수 있습니까? –

답변

2

은 같습니다 암호를 데이터베이스에 일반 텍스트로 저장하지 마십시오. 어떤 종류의 해싱을 사용하십시오. 또한 두 테이블을 기본 키로 연결하면 좋은 디자인이 아닙니다.

+0

오류가 발생합니다. "또는 근처에서 구문 오류가 발생했습니다. LINE 1 : A.ID A.USER_NAME, A.PASSWD TEXT, A.FIRST_NAME TEXT, A.FIRST_NAME TEXT를 선택하십시오. –

2
SELECT * FROM ACCOUNT_ROLE INNER JOIN ACCOUNT ON ACCOUNT.ID=ACCOUNT_ROLE.ID 

을하는 방식, 돈으로 : 당신은 단지 다음과 같이 간단한 당신은 위의 쿼리를 수정하여 필요한 열을 선택할 수 있습니다

select A.*,R.* from Account A inner join Account_Role R on 
A.Id = R.Id 

에 가입하려는처럼

+0

''원인 : org.postgresql.util.PSQLException : 오류 : ORDER BY "id"가 모호합니다. ' –

+0

'Order by'절을 사용하고 있습니까? 그렇다면 자격을 취득해야합니다. 예 : 'Account.Id에 의한 주문' – Ash

+0

Peter, 초보자를위한 sql 읽기가 좋습니다. https://www.google.co.nz/url?sa=t&source=web&rct=j&url=http://www.w3schools.com/sql/&ved=0ahUKEwiZ_OzuuJrNAhVBMaYKHelVCP8QFggsMAM&usg=AFQjCNF2-zIxgQyzqwxy2j7n29JyngSdWg –