-2

我有 2 张桌子:UsersDocuments

1 用户可以有 0 个或多个文档。

我想显示每个用户及其文档,但问题是:我想显示没有文档的用户,结果如下(假设IdUsers 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
4

1 回答 1

1

您将使用 aLEFT 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

SQL 连接的可视化解释

于 2012-04-16T14:21:59.333 回答