我有2个表:Users
和Documents
。
1用户可以拥有0个或多个文档。
我想显示每个用户及其文档,但问题是:我想显示没有文档的用户,结果如下(假设IdUser
s 3和5没有文档):
IdUser IdDocument DocumentName
====== ========== ============
1 1 test11.pdf
1 2 test12.pdf
1 3 test13.pdf
2 4 test21.pdf
2 5 test21.pdf
3 NULL NULL
4 6 test41.pdf
5 NULL NULL
答案 0 :(得分:1)
您将使用LEFT JOIN
执行此操作。
create table users
(
userid int
)
create table documents
(
documentid int,
userid int,
documentname varchar(10)
)
insert into users values (1)
insert into users values (2)
insert into users values (3)
insert into users values (4)
insert into documents values (1, 1, 'test')
insert into documents values (2, 1, 'test 1')
insert into documents values (3, 2, 'test 2')
insert into documents values (3, 3, 'test 3')
select *
from users u
left join documents d
on u.userid = d.userid
查看sqlfiddle进行测试
您应该对JOINs
进行一些研究,以下是JOINs
的详细说明: