常用工具
窗体界面
查询
打印样式
自定义平台
磁贴仪表板设计
看板设计
自定义XML
数据采集
聚合数据
数据库
SQL
SQL—LEFT JOIN (左连接)
最近更新时间:2021-12-24 12:00(V1.00)

LEFT JOIN 将从左表返回所有行,保留不匹配的行。

LEFT JOIN 语法

SELECT 表名1.字段1, 表名2.字段2
FROM表名1
LEFT JOIN 表名2 ON 表名1.连接字段 = 表名2.连接字段

LEFT JOIN 实例

物料主数据列表,显示仓库名称、物料组名称等。
SQL语句如下:

SELECT TB1.ItmID, TB1.ItmName, TB1.WhsID, TB11.WhsName, TB1.ItmGrpID, TB12.ItmGrpName
FROM MDItm TB1
LEFT JOIN MDWhs TB11 ON TB1.WhsID = TB11.WhsID
LEFT JOIN MDItmGp TB12 ON TB1.ItmGrpID = TB12.ItmGrpID

注意事项

一般都要使用LEFT JOIN,保证业务数据完整,基础资料缺失时,业务记录出现,但资料的名称为NULL。

INNER JOIN、LEFT JOIN区别实例

获取采购订单对应采购收货信息,未做收货情况。
LEFT JOIN 连接语句如下:

SELECT TD1.DocNum, TD1.LineNum, TD1.ItmID, TD1.ItmName, TD1.Qty,
TD2.DocNum RevNum, TD2.LineNum RevLineNum
FROM PUOrdA TD1
LEFT JOIN PURevA TD2 ON TD1.DocEntry = TD2.BaseEntry AND TD1.LineNum = TD2.Base LineNum AND TD1.ObjType = TD2.BaseType

结果:
1e0adeca5ccf4a7bbcadeeb6909adb47.png

INNER JOIN 连接语句如下:

SELECT TD1.DocNum, TD1.LineNum, TD1.ItmID, TD1.ItmName, TD1.Qty,
TD2.DocNum RevNum, TD2.LineNum RevLineNum
FROM PUOrdA TD1
INNER JOIN PURevA TD2 ON TD1.DocEntry = TD2.BaseEntry AND TD1.LineNum = TD2.Base LineNum AND TD1.ObjType = TD2.BaseType

结果:
c8dab234d02f4c2691528c662372a9ce.png

上一篇: SQL—INNER JOIN(内连接)
下一篇: SQL—UNION ALL (并集)