我正在创建两个表。表 1 具有以下架构
user_id int not null,autoincrement
movie _id int not null
movie_name varchar
user_name varchar
rating int
genre varchar
user_Id movie_Id movie_name user_name rating genre
1 1 Twister Alex 6 Drama
2 ! Twister Tim 1 Drama
(contd..)
而表 2 具有以下架构
movie _id int not null
movie_name varchar
user_name varchar
genre varchar
movie_Id movie_Name user_name genre
2 Harry Porter Alex Fantay
3 Narnia Alex Fantasy
..
...(contd)
现在,当我发出插入值的查询时,它首先检查第一个表中是否存在以下用户名。如果为真,则插入到第二个表中,否则它将根据架构将值插入第一个表中。换句话说,第一个表具有唯一的用户名和唯一的user_Id 而第二个包含许多重复的用户名以及他们看过的电影
现在我想连接表1和表2,以便它包含两个表的所有列和用户名的唯一user_Id
以及他们看过的电影和类型的评级
例如
user_id movie_Id movie_name user_name rating genre
1 1 Twister Alex 6 Drama
1 2 Harry Porter Alex 7 Fantasy
1 3 Narnia Alex 6 Fantasy
2 1 Twister Tim 1 Drama
...
等等
Thanks
SELECT table1.user_id, table2.*
FROM table2
INNER JOIN table2
ON table2.user name = table1.user_name
但是,您的数据库结构应该更像这样:
table_users:
user_id
username
...
table_videos:
video_id
video_name
video_genre
...
table_rentals
record_id
user_id
video_id
然后,对于这样的结构,您将使用以下 SQL 查询:
SELECT table_users.user_id, table_users.username, table_videos.video_id, table_videos.video_name
FROM table_videos
INNER JOIN table_rentals
ON table_rentals.video_id = table_videos.video_id
INNER JOIN table_users
ON table_rentals.user_id = table_users.user_id
这更加规范化,并减少了重复数据
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)