Ind*_*dhi 3 sql sql-server join sql-server-2008
如何将两个不同表的所有列显示为ONE?
我在MovieDB中有两个表,电影和movie_actors.电影的ID是主键和id
的movie_actor
是外键和movies_actor.id
被引用到movies.id
TABLE MOVIES
id/title/director/genre/year_of_release
TABLE MOVIE_ACTOR
id/title/actor/age
Run Code Online (Sandbox Code Playgroud)
我使用了Union,但它不起作用,因为union要求相同数量的属性.但这里第一个表有4列,第二个表只有3列.
我想在一张表中显示
id/title/director/genre/year_of_release/actor/age
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
您将需要在表上使用连接.联结将两个字段是主/外键,你说是彼此之间id
的movie
表和id
在movie_actor
表:
select m.id,
a.title,
m.director,
m.genre,
m.year_of_release,
a.actor,
a.age
from movies m
inner join movie_actor a
on m.id = a.id
Run Code Online (Sandbox Code Playgroud)
如果您不熟悉连接语法,那么联接的视觉解释很棒.
An INNER JOIN
将返回两个表中匹配的记录集.如果movie
表中的记录在表中没有匹配的记录move_actor
,那么您可能希望使用a LEFT JOIN
.即使movie_actor
表中没有记录,这也会返回所有电影:
select m.id,
a.title,
m.director,
m.genre,
m.year_of_release,
a.actor,
a.age
from movies m
left join movie_actor a
on m.id = a.id
Run Code Online (Sandbox Code Playgroud)
请参阅SQL Fiddle和两个查询的演示.
归档时间: |
|
查看次数: |
17557 次 |
最近记录: |