我正在创建两个表。表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)
现在,当我查询插入值时,它首先检查第一个表中是否存在以下用户名。如果为true,则将其插入到第二个表中,否则它会根据模式将值插入到第一个表中。换句话说,第一个表具有唯一性用户名和唯一的user_Id,而second包含许多带有电影的重复用户名
现在我想加入表1和表2,以便它包含两个表的所有列和user_name的唯一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
... 等等
由于
答案 0 :(得分:2)
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
这更加规范化,减少了重复数据
答案 1 :(得分:0)
试试这个
select * from table2 inner join table1 on table2.user_id= table1.user_id