2015-12-19 25 views
0

可能是標題不正確。我是數據庫中的新手。HSQL - 如何編寫查詢以獲取1:n reslationship ID

我有這個表這種類型的關係:

DROP TABLE "User" IF EXISTS; 
DROP TABLE "Address" IF EXISTS; 
DROP TABLE "Family" IF EXISTS 

CREATE TABLE "Family" (
"ID Family" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY, 
"ID father" INTEGER NOT NULL, 
"ID mother" INTEGER NOT NULL, 
"Family Name" VARCHAR(25) NOT NULL 
); 

CREATE TABLE "Address" (
"ID Address" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY, 
"Phone Number" INTEGER, 
"Street" VARCHAR(25) NOT NULL, 
"Number" INTEGER NOT NULL, 
"Floor" INTEGER , 
"City" VARCHAR(15), 
"Country" VARCHAR(10) 
); 
CREATE TABLE "User" (
"ID User" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIM ARY KEY, 
"Name" VARCHAR(25) NOT NULL, 
"Sex" CHAR(15), 
"ID Address" INTEGER NOT NULL, 
"ID Family" INTEGER NOT NULL, 
"BirthDate " DATE, 
"Cellphone Number" INTEGER, 
"mail Address" VARCHAR(25), 
"Date" DATE DEFAULT CURRENT_DATE, 
CONSTRAINT "CK_Uti_GNDR" CHECK("Sex" in ('Male', 'Female')), 
CONSTRAINT FK_Uti_Address FOREIGN KEY ("ID Address") REFERENCES "Address" ("ID Address"), 
CONSTRAINT FK_Uti_Family FOREIGN KEY ("ID Family") REFERENCES "Family" ("ID Family") 
); 

我怎樣才能獲得(例如)在一個人的父親的手機?

回答

1

試着加入用戶和家庭表所示:

SELECT * 
FROM User u INNER JOIN Family f 
ON u.id_family = f.id_family 
WHERE u.name = 'xyz' 
+0

我使用的LibreOffice 5.我已經試過你的答案全無成功的代碼。 謝謝 – marco