首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只有在数据的情况下sqlite内部连接

只有在数据的情况下sqlite内部连接
EN

Stack Overflow用户
提问于 2018-05-12 12:46:13
回答 1查看 23关注 0票数 1

表中的示例:

推广(idPromo,nameUser)

公司(idCompany,nameCompany)

PromoCompany(idPromo,idCompany)

我只想得到一个查询,所有的晋升谁有公司(例如idCompany=1)或谁有0公司。

描述: PromoCompany是一个限制表.如果存在用于晋升的数据,则只能对此公司进行促销,如果没有数据,则所有公司的晋升都可以评估。

例子:

代码语言:javascript
复制
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(因为不受限制)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-12 12:49:32

嗯嗯。。。这听起来像是两个条件:

代码语言:javascript
复制
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中添加一个标志,说明促销是否适用于所有公司或是否受到限制。要搜索一张表格有点尴尬--而且可能会让人感到困惑。向表中添加一行可能会使其他人的晋升无效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50306417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档