sql多对多关系的两表如何联合查询出所有的结果?

如题所述

1、语句如下:

Select project.*, [contract].* from project

Left join contract_project on project.projectId = contract_project.projectId

Left join [contract] on contract_project.contractId = [contract].contractId

注:contract在Sql server中是关键字,因此使用了中括号。

2、使用Left join

Left join是以左表为准的。换句话说,左表(project)的记录将会全部表示出来,而右表(contract_project)只会显示符合搜索条件的记录

(例子中为: project.projectId = contract_project.projectId)。对于contract表来说,contract_project表是它的左表。

此例以两个left join 将三个表按条件联接在一起。

扩展资料

连接通常可以在select语句的from子句或where子句中建立,其语法格式为:

select colunm_name1,colunm_name2

from table_name1

left join table_name2

on table_name1.colunmname=table_name2.colunmname

其中join_table指出参与连接操作的表名,连接可以对同一个表操作,也可以对多表操作,对同一个表操作的连接称为自连接, join_type 为连接类型,可以是left join 或者right join 或者inner join 。

on (join_condition)用来指连接条件,它由被连接表中的列和比较运算符、逻辑运算符等构成。

参考资料:百度百科 left join



温馨提示:答案为网友推荐,仅供参考
相似回答