我有Inner Join
的查询。
查询1 :
select *
from vehicle_models vmodel
Inner join ogpo_voilure_model md on md.Name = vmodel.VEHICLE_MODEL
现在,我需要这些ID中不存在的数据。用另一个词 - 相反Inner JOIN
。
我尝试进行我需要的查询,但没有成功。
查询2 :
Select top 500 *
from ogpo_voilure_model md
Where md.id not in
(
select md.id
from Novelty.dbo.vehicle_models vmodel
Inner join [ogpo_voilure_model] md on md.Name = vmodel.VEHICLE_MODEL
)
我在StakOverflow
的答案中找到this(sixth example)。但我的字段不是NULL
。
我如何实现它?
答案 0 :(得分:0)
内连接意味着您希望所有内容都在集合表 vehicle_models 中,但在 ogpo_voilure_model
中还有一个或多个相关行如果您定义了对面,因为所有内容都在 vehicle_models 中,但在 ogpo_voilure_model
中没有关联您所需要的只是:
select *
from [Novelty].[dbo].[vehicle_models] vmodel
Where vmodel.VEHICLE_MODEL not in
(
select md.Name
from [Novelty].[dbo].[ogpo_voilure_model] md
)
遵循该定义即使结果返回零行也是正确的。 如果这不是正确答案,您必须首先定义内部联接的相反内容。例如,您可能想要交换表格。
答案 1 :(得分:0)
你是什么意思"我的字段不是NULL
"?
您在问题中提供的link有一个答案:FULL JOIN
。
SELECT *
FROM
vehicle_models vmodel
FULL JOIN ogpo_voilure_model md on md.Name = vmodel.VEHICLE_MODEL
WHERE
md.Name IS NULL
OR vmodel.VEHICLE_MODEL IS NULL
;
这将返回vehicle_models
和ogpo_voilure_model
中没有共同车辆型号名称的行。
如果您可以在问题和预期结果中添加一些示例行,那将会有所帮助。