【发布时间】:2016-04-20 06:16:42
【问题描述】:
我正在尝试完成一个数据库最终项目,我需要为网络论坛创建一个数据库。只是数据库工作,而不是 PHP/HTML/等。
对于本示例,我们将用户硬编码到代码中,因为我们没有使用变量。对于我的示例,我将使用 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)
创建表用户
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 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;
【问题讨论】: