表中的示例:
推广(idPromo,nameUser)
公司(idCompany,nameCompany)
PromoCompany(idPromo,idCompany)
我只想得到一个查询,所有的晋升谁有公司(例如idCompany=1)或谁有0公司。
描述: PromoCompany是一个限制表.如果存在用于晋升的数据,则只能对此公司进行促销,如果没有数据,则所有公司的晋升都可以评估。
例子:
Promo[{
idPromo:1
namePromo:"promo test"
},
{
idPromo:2
namePromo:"promo test 2"
}]
Company[{
idCompany:10
nameCompany:"CompanyPloof"
},{
idCompany:12
nameCompany:"CompanyPaf"
}
]
PromoCompany[{
idPromo:1
idCompany:10
},{
idPromo:1
idCompany:12
}
]如果我的公司是CompanyPloof,那么idPromo 1和2就会有广告。
如果我的公司是CompanyPaf,则idPromo 2(因为不受限制)
发布于 2018-05-12 12:49:32
嗯嗯。。。这听起来像是两个条件:
select p.*
from promotions p
where exists (select 1 from promocompany pc where pc.idpromo = p.idpromo and p.idcompany = 1) or
not exists (select 1 from promocompany pc where pc.idpromo = p.idpromo);我建议对你的数据模型做一个小小的修改。在promotions中添加一个标志,说明促销是否适用于所有公司或是否受到限制。要搜索一张表格有点尴尬--而且可能会让人感到困惑。向表中添加一行可能会使其他人的晋升无效。
https://stackoverflow.com/questions/50306417
复制相似问题