Я пытаюсь завершить окончательный проект базы данных, где мне нужно создать базу данных для веб-форума. Просто работа с БД, а не PHP/HTML/и т. Д.Oracle SQL для возврата нескольких значений из другой таблицы/строк в одно поле в другой таблице
В этом примере мы жестко кодируем пользователя в код, так как мы не используем переменные. Для моего примера я буду использовать User_ID 2. Я застрял на требовании. Мне нужно создать представление, в котором перечислены профиль пользователей и их интересы. Итак, имена полей, такие как Username, 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)
Я попробовал эту команду, но он вернулся «однорядные подзапрос возвращает более одной строки», когда я пытался выбрать * из него, что я понимаю почему. Просто не могу понять, как заставить его делать то, что я хочу. Возможно ли это?
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;
Спасибо! Я не использовал подзапрос для проекта. Представление повторило имя пользователя несколько раз, но инструктор сказал, что все в порядке (программист разделил бы его). Тем не менее, это прослушивало меня, и я хотел понять это. Я сделаю это и посмотрю, что произойдет! Благодаря! –