我正在嘗試完成一個數據庫最終項目,我需要爲一個Web論壇創建一個數據庫。只是數據庫工作,而不是PHP/HTML /等。Oracle SQL將另一個表/行的多個值返回到另一個表中的單個字段
對於這個例子,我們將用戶硬編碼到代碼中,因爲我們沒有使用變量。對於我的示例,我將使用User_ID 2. 我被困在需求上。我需要創建一個列出用戶個人資料和興趣的視圖。所以,字段名稱,如用戶名,F_Name,L_Name等 我的問題是,用戶的「興趣」存儲在另一個表中。我需要將主要顯示如下一種觀點:
Users.Username Users.F_Name Users.L_Name Users.Joined (VARCHAR2) Users.Signature Users.Website INTERESTS
我想它返回如:
"JSmith" "John", "Smith", "1/1/2016", "SigHere", "www.example.com, "Music, Movies, Tech" With the entire list of interests all within one field of the view.
利息表如下所示:
INTEREST_ID USER_ID CATEGORY_ID
1 2 1
2 2 2
3 2 3
4 3 1
5 3 2
6 4 2
7 5 1
8 5 2
9 5 3
分類表是:
CATEGORY_ID NAME DESCRIPTION
1 Music All about them Jamz!
2 Electronics Tech Talk
3 Movies The BIG screen
用戶表:
User_ID Integer NOT NULL,
Username VARCHAR2(60) NOT NULL,
Password VARCHAR2(60),
Email VARCHAR2(255),
F_Name VARCHAR2(20) NOT NULL,
L_Name VARCHAR2(20) NOT NULL,
Joined VARCHAR2(10),
Level_ID INTEGER NOT NULL,
Signature VARCHAR2(255),
Website VARCHAR2(60)
CREATE TABLE用戶
User_ID Integer NOT NULL,
Username VARCHAR2(60) NOT NULL,
Password VARCHAR2(60),
Email VARCHAR2(255),
F_Name VARCHAR2(20) NOT NULL,
L_Name VARCHAR2(20) NOT NULL,
Joined VARCHAR2(10),
Level_ID INTEGER NOT NULL,
Signature VARCHAR2(255),
Website VARCHAR2(60)
我試過這個命令,但它返回時,我試圖SELECT * FROM爲「單行子查詢返回多個行」我明白爲什麼。只是無法弄清楚如何讓它做我想做的事。它甚至有可能嗎?
CREATE or REPLACE VIEW Profile AS
SELECT Users.Username, Users.F_Name, Users.L_Name, Users.Joined, Users.Website,
(SELECT UserInterested.Category_ID FROM UserInterested) AS InterestList
FROM Users
WHERE Users.User_ID = 2;
謝謝!我最終沒有爲該項目使用子查詢。該視圖重複了用戶名一堆,但教練說這很好(程序員會剝奪它)。然而,它一直在竊聽我,我想弄明白。我會給它一個鏡頭,看看會發生什麼!謝謝! –