我有几张表,为了本例的目的,我将其简化为极限。
表1,'单位'
ID UnitName PartNumber
1 UnitX 1
2 UnitX 1
3 UnitX 2
4 UnitX 3
5 UnitX 3
6 UnitY 1
7 UnitY 2
8 UnitY 3
表2,'部件'
ID PartName Quantity
1 Screw 2
2 Wire 1
3 Ducttape 1
我想查询这些表中哪些单元可以构建,如果是,那么可以首先构建哪一个以便有效地使用这些部件。
现在问题是:这可以使用SQL完成,还是需要后台应用程序/更高效?
所以在这个例子中,它很简单,因为只能构建一个单元(单元Y)..但我想你明白了。 (我不是在寻找摇晃和烘焙的答案,只是你对此的看法。)
由于
答案 0 :(得分:1)
当你提出它时,使用sql是有效的。正如您所描述的,表单元的PartNumber列是Parts表的ID列上的外键,因此一个简单的外连接或选择PartNumber为“NOT IN”部件表的单元将为您提供无法构建的单元。 / p>
但是,如果您的数据库模式由许多非规范化表组成,或者没有索引,其他“坏”事物等非常复杂 可以检查特定的应用程序代码是否更快。但我真的怀疑它的具体情况,查询似乎微不足道。