SQL连接2个表,条件由于条件而采用一些默认的NULL值

Dav*_*vid -2 c# sql if-statement join inner-join

我正在使用join从表中获取一些数据,

    SELECT da.aName AS aName FROM dbo.bTable 
INNER JOIN aTable da ON dbo.bTable.nameType = da.ID"
Run Code Online (Sandbox Code Playgroud)

这个选择有效.但是如果nameType是一个不在da.ID中的新数字,则根本不显示该行.我想要的是将这些连接到表,但如果aTable根本不包含这样的数字,那么必须采取一些默认值.

这是一个例子.aTable是名称表

id=1 aName = bmw
id=2 aName= mersedes
id=3 aName= audi
Run Code Online (Sandbox Code Playgroud)

bTable有汽车清单,我必须全部拿到

1    nameType =1
2    nameType =2
3    nameType =3
4    nameType =5
Run Code Online (Sandbox Code Playgroud)

所以我必须展示所有4辆车.使用我的代码我只会显示3,因为4号汽车的nameType是5.而且aTable中没有这样的ID.结果将是

1辆车是宝马

2辆车是mersedes

3辆车是奥迪

我想要做的是在这种情况下aTable给出一些NULL值或类似的结果必须是这样的

1辆车是宝马

2辆车是mersedes

3辆车是奥迪

4车是NULL

Max*_*rov 5

您应该使用LEFT JOIN而不是INNER JOIN

SELECT da.aName AS aName 
FROM dbo.bTable 
LEFT JOIN aTable da ON dbo.bTable.nameType = da.ID
Run Code Online (Sandbox Code Playgroud)