[foam gold] SQL sub-query Not In no result reason
Background source code select * from ITEM where item_id not in (select parent_item_id from ITEM) query effect
There is no matching value.
Reason
The execution statement after not in parsing is: "idling 1 and idling" 2 and idling null)
Notice the null in it. The existence of null values will cause the condition to fail as a whole, so there are no matching values.
Solution
The expected result can be achieved by excluding the null value.
Select * from ITEM where item_id not in (select parent_item_id from ITEM where parent_item_id is not null)
After the adjustment of Sql, the execution effect is as follows
Recall that not in is an and condition and cannot have null values. Tree structure, the parent field inevitably has a null value, so the query cannot be found. You can exclude null values.