拥有这张桌子(抱歉,这里似乎无法获得像样的布局):
PD Header Text Mask_Producer Mask_Dep Mask_Diam
----------------------------------------------------------------------------------------------
10 Producer Aproducer Aprod * *
10 Producer Bproducer Bprod * *
20 Diam A Aprod 10 30
20 Diam A Aprod 20 40
20 Diam B Aprod 10 40
30 Dep 10 Aprod 10 *
30 Dep 20 Aprod 20 *
30 Dep 30 Aprod 30 *
20 Diam A Bprod 20 40
30 Dep 10 Bprod 10 *
我将表中的行用作选择其他行的过滤器/掩码。
因此,用户已经选择了以下行:
PD Text
-------------
10 Aproducer
20 A
我现在想找出 PD=30 的哪些行适合之前的选择:
PD=10, Text=Aproducer 给出 Mask_Producer 必须是“Aprod”,(Mask_Dep 和 Mask_Diam 可以是任何星星)
PD=20, Text=A 给出 Mask_Producer 必须是“Aprod”,Mask_Dep 必须是 10 或 20,Mask_Diam 必须是 30 或 40(或星号)
我希望结果是上表中的第 6 行和第 7 行。
然后想象这个例子有 2000 行和 20 个 Mask_xx 字段......
我正在考虑像 IN、LEFT JOIN、JOIN 和临时表这样的 SQL 来执行此操作,但我认为我可能使事情复杂化了太多......