2014-04-27 81 views
0

我很感激任何帮助。我正在创建一个数据库查询,我想添加一些东西。 我创建了两个表格(用户&视频),我想将video_id插入到用户表中,但是我希望一个用户拥有多个视频。例如,user_id 1应该有全部三个视频。任何帮助?SQL查询将多个值添加到属性中

create table users ( user_id int, username varchar(50), video_id int, primary key (user_id));

insert into users(user_id,username,video_id) values (1,'trex',1&2&3);这行不正确。

create table videos ( video_id int, video_title varchar(100), primary key (video_id));

insert into videos(video_id,video_title) values (1,'Math tutor'),(2,'SQL joins'),(3,'Fastest cars');

回答

2

我认为在这种情况下,你应该规范化表的用户,从这里取出video_id,并创建一个表有users to video mapping,这样的事情:

create table user_videoes (
user_id int, 
video_id int); 

通过这种方法,一个用户可以拥有多个视频一个视频可以属于多个用户。

+0

非常感谢。这很有用,也更简单。 – mickey4691

0

如果视频只能属于一个用户,那么你应该做它周围的其他方法,即。 user_id字段在视频表中。这样一个用户可以拥有很多视频。

+0

我必须做一些多重的东西。就像许多属于频道的视频一样,这就是为什么我以用户为例。谢谢您的意见。 – mickey4691

0

您不能在VIDEO_ID插入1 3为INT

你需要插入三人行,拿到三级VIDEO_ID的,并为每个视频

insert into users(user_id,username,video_id) values (1,'trex',1); 
insert into users(user_id,username,video_id) values (1,'trex',2); 
insert into users(user_id,username,video_id) values (1,'trex',3); 

但随后,USER_ID不能是主键。使用,而不是一个ID列白衣自动增量

+0

谢谢,但我不想重复这些值。 – mickey4691

+0

嗯,他可以用_Boolean_'插入它,然后他只能存储32个视频(假设是一个32位整数)。这是一个很痛苦的事情...... –